opencv鼠标回调函数举例
时间: 2023-09-18 18:08:38 浏览: 109
下面是一个简单的 OpenCV 鼠标回调函数的例子:
```python
import cv2
def mouse_callback(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("Left button of the mouse is clicked - position ({}, {})".format(x, y))
elif event == cv2.EVENT_RBUTTONDOWN:
print("Right button of the mouse is clicked - position ({}, {})".format(x, y))
elif event == cv2.EVENT_MBUTTONDOWN:
print("Middle button of the mouse is clicked - position ({}, {})".format(x, y))
# 读取图像
img = cv2.imread('image.png')
# 创建一个窗口并将鼠标回调函数与窗口绑定
cv2.namedWindow('image')
cv2.setMouseCallback('image', mouse_callback)
# 显示图像并等待按下键盘上的任意键
cv2.imshow('image', img)
cv2.waitKey(0)
# 销毁所有创建的窗口
cv2.destroyAllWindows()
```
在这个例子中,我们定义了一个名为 `mouse_callback` 的函数。当鼠标在窗口中移动或点击时,OpenCV 将自动调用此函数,并将事件类型、鼠标位置和其他参数作为参数传递给它。在这个函数中,我们只是简单地打印出鼠标点击事件的类型和位置。
然后,我们创建了一个名为 `image` 的窗口,并将鼠标回调函数与窗口绑定。最后,我们显示了图像,并等待按下键盘上的任意键。当按下键盘上的任意键时,所有创建的窗口都将被销毁。
阅读全文