案例@Fu Xianjun. All Rights Reserved.
鼠标画图,使用鼠标交互函数,实现图像数据标注
图例:
代码:
import cv2
drawing = False # 是否开始画图
start = (-1, -1)
# 鼠标的回调函数的参数格式是固定的,不要随意更改。
def mouse_event(event, x, y, flags, param):
global start,drawing,mode
# 左键按下:开始画图
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
start = (x, y)
# 鼠标移动,画图
elif event == cv2.EVENT_MOUSEMOVE:
if drawing:
cv2.circle(img, (x, y), 5, (0, 0, 255), -1)
# 左键释放:结束画图
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
cv2.circle(img, (x, y), 5, (0, 0, 255), -1)
cv2.imwrite("draw.png",img)
img = cv2.imread('yiqing.png')
cv2.namedWindow(winname='drawing')
cv2.setMouseCallback('drawing', mouse_event)
while True:
cv2.imshow("drawing",img)
# 按 q 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
最后结果: