完成触发图像窗口鼠标事件的两步
时间: 2023-07-19 22:38:26 浏览: 82
移动鼠标即指即显图文并茂.pdf
触发图像窗口鼠标事件需要完成以下两步:
1. 创建鼠标事件回调函数
在OpenCV中,可以使用`cv2.setMouseCallback()`函数创建鼠标事件回调函数。该函数的参数包括:
- 图像窗口的名称
- 鼠标事件的类型
- 鼠标事件的回调函数
例如,以下代码创建了一个鼠标事件回调函数`onMouse()`:
```python
import cv2
def onMouse(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print('Left button down at (%d, %d)' % (x, y))
elif event == cv2.EVENT_RBUTTONDOWN:
print('Right button down at (%d, %d)' % (x, y))
```
该函数会在鼠标左键或右键按下时打印出鼠标的坐标。
2. 注册鼠标事件回调函数
在显示图像的窗口中,可以使用`cv2.setMouseCallback()`函数注册鼠标事件回调函数。例如,以下代码创建了一个窗口,并注册了鼠标事件回调函数:
```python
import cv2
def onMouse(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print('Left button down at (%d, %d)' % (x, y))
elif event == cv2.EVENT_RBUTTONDOWN:
print('Right button down at (%d, %d)' % (x, y))
img = cv2.imread('image.jpg')
cv2.imshow('image', img)
cv2.setMouseCallback('image', onMouse)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码会在显示图像的窗口中注册鼠标事件回调函数`onMouse()`,并等待用户按下任意键关闭窗口。
这样就完成了触发图像窗口鼠标事件的两步。
阅读全文