cv2鼠标回调函数实例
时间: 2023-09-04 22:06:37 浏览: 111
下面是一个使用cv2鼠标回调函数的示例代码:
```python
import cv2
# 定义鼠标回调函数
def mouse_callback(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("Left button of the mouse was clicked - position ({}, {})".format(x, y))
elif event == cv2.EVENT_RBUTTONDOWN:
print("Right button of the mouse was clicked - position ({}, {})".format(x, y))
elif event == cv2.EVENT_MBUTTONDOWN:
print("Middle button of the mouse was clicked - position ({}, {})".format(x, y))
elif event == cv2.EVENT_MOUSEMOVE:
print("Mouse move - position ({}, {})".format(x, y))
# 读取图像
img = cv2.imread('test.jpg')
# 创建窗口并显示图像
cv2.imshow('image', img)
# 设置鼠标回调函数
cv2.setMouseCallback('image', mouse_callback)
# 等待按下任意按键退出
cv2.waitKey(0)
# 关闭窗口
cv2.destroyAllWindows()
```
在以上代码中,我们首先定义了一个鼠标回调函数 `mouse_callback`,该函数可以根据鼠标事件的类型和位置输出一些信息。然后我们读取一张图片并在窗口中显示出来,接着设置鼠标回调函数为 `mouse_callback`,最后等待用户按下任意按键后退出程序。当用户在图像上进行鼠标操作时,回调函数会被调用并输出相应的信息。
需要注意的是,OpenCV中提供了四种鼠标事件类型:
1. `cv2.EVENT_LBUTTONDOWN` - 左键按下事件
2. `cv2.EVENT_RBUTTONDOWN` - 右键按下事件
3. `cv2.EVENT_MBUTTONDOWN` - 中键按下事件
4. `cv2.EVENT_MOUSEMOVE` - 鼠标移动事件
回调函数需要根据不同的事件类型进行相应的处理。
阅读全文