【发布时间】:2018-04-17 06:47:24
【问题描述】:
我一直在研究 opencv 并通过了 cv2.setMouseCallback() 。以下是鼠标点击画圆的代码。
导入简历2
将 numpy 导入为 np
def draw_circle(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDBLCLK:
cv2.circle(image,(x,y),(100,100),(255,0,0),-1)
img = np.zeros((512,512,3), np.uint8)
cv2.namedWindow("image")
cv2.setMouseCallback("image",draw_circle)
while True:
cv2.imshow("image",image)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cv2.destroyAllWindows()`
请解释
- 如何在不传递所有参数的情况下调用函数 draw_circle
- 函数中有五个参数,只有两个变量 可以赋值
- 创建cv2.namedWindow("image")的目的是什么
谢谢!
【问题讨论】:
-
使用 setMouseCallback 后,每当鼠标移动或使用按钮时都会调用使用的函数。调用 setMouseCallback 时,您不会调用 draw_circle,而是告诉 setMouseCallback 应该在鼠标事件上调用哪个函数(这称为回调函数)。使用函数 namedWindow,您可以创建一个具有该名称和标题的新窗口。