百度网站排名抓取规则,厦门行业网站建设,网站建设中静态页面模板,网站创建网站python opencv如何实现简易画图板#xff1f;本篇文章小编给大家分享一下python opencv实现简易画图板代码#xff0c;小编觉得挺不错的#xff0c;现在分享给大家供大家参考#xff0c;有需要的小伙伴们可以来看看。
代码如下#xff1a;
# -*- coding: utf-8 -*-
…python opencv如何实现简易画图板本篇文章小编给大家分享一下python opencv实现简易画图板代码小编觉得挺不错的现在分享给大家供大家参考有需要的小伙伴们可以来看看。
代码如下
# -*- coding: utf-8 -*-Created on Sat May 19 17:34:54 2018
author: xxximport cv2 as cv
import numpy as np
def nothing(x):
pass
# 当鼠标按下时变为 True
drawing False
# 如果 mode 为 True 绘制矩形。按下 m 变成绘制曲线
mode True
ix, iy -1, -1
#创建回调函数
def draw_circle(event, x, y, flags, param):
r cv.getTrackbarPos(R, image)
g cv.getTrackbarPos(G, image)
b cv.getTrackbarPos(B, image)
color (b, g, r)
global ix, iy, drawing, mode
# 当按下左键是返回起始位置坐标
if event cv.EVENT_LBUTTONDOWN:
drawing True
ix, iy x, y
# 当鼠标左键按下并移动是绘制图形。event 可以查看移动, flag 查看是否按下
elif event cv.EVENT_MOUSEMOVE and flags cv.EVENT_FLAG_LBUTTON:
if drawing True:
if mode True:cv.rectangle(img, (ix, iy), (x, y), color, -1)
else:
# 绘制圆圈小圆点连在一起就成了线3代表画笔的粗细cv.circle(img, (ix, iy), 3, color, -1)
# 下面注释的代码是起始点为圆心起点到终点为半径
# r int(np.sqrt((x - ix)**2 (y - iy)**2))
# cv.circle(img, (x, y), r, (0, 0, 255), -1)
# 当鼠标松开停止绘画
elif event cv.EVENT_LBUTTONUP:
drawing False
# if mode True:
# cv.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)
# else:
# cv.circle(img, (x, y), 5, (0, 0, 255), -1)
#创建一幅黑色图形
img np.zeros((512, 512, 3), np.uint8)
cv.namedWindow(image)
cv.createTrackbar(R, image, 0, 255, nothing)
cv.createTrackbar(G, image, 0, 255, nothing)
cv.createTrackbar(B, image, 0, 255, nothing)
cv.setMouseCallback(image, draw_circle)
while(1):cv.imshow(image, img)
k cv.waitKey(1)0xFF
if k ord(m):
mode not mode
elif k27:
break
cv.destroyAllWindow()