什么应该是cv2.setMouseCallback()的参数

时间:2017-11-04 18:52:47

标签: python numpy opencv cv2

我一直在使用opencv并已通过cv2.setMouseCallback()。以下是鼠标点击时绘制圆圈的代码     导入cv2     导入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()`

请解释

  1. 如何在不传递所有参数的情况下调用函数draw_circle
  2. 函数中有五个参数,只有两个变量 可以指定值
  3. 创建cv2.namedWindow的目的是什么(" image")
  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 你没有调用draw_circle,openCV会在具有正确事件和坐标的鼠标事件上为你调用它,你只需要为{{1}中的哪个窗口指定要调用的函数}

  2. 如果您需要其他变量,可以通过setMouseCallback

  3. 发送
  4. 您可以为多个窗口设置不同的鼠标操作

  5. 我希望这个例子可以帮助那些偶然发现的人:

    param