cv2.setMouseCallback()用法
时间: 2024-05-03 09:23:34 浏览: 208
编辑菜单编辑菜单编辑菜单编辑菜单-opencv+python实现鼠标点击图像输出该点的rgb和hsv值
cv2.setMouseCallback()是OpenCV中的一个函数,用于设置鼠标事件的回调函数。它的语法如下:
```python
cv2.setMouseCallback(window_name, callback, param=None)
```
其中,参数window_name是窗口名称,callback是回调函数,param是传递给回调函数的参数。
回调函数需要有以下形式:
```python
def callback(event, x, y, flags, param):
# event: 鼠标事件类型
# x, y: 鼠标事件发生的位置
# flags: 鼠标事件的标志
# param: 传递给回调函数的参数
# 处理鼠标事件的代码
```
在回调函数中,可以根据鼠标事件类型(event)、鼠标事件发生的位置(x, y)、鼠标事件的标志(flags)等参数来处理鼠标事件。例如,可以根据鼠标左键的按下和抬起事件,实现鼠标选择区域的功能。
下面是一个使用cv2.setMouseCallback()函数的例子:
```python
import cv2
def callback(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("Left button of mouse clicked at ({}, {})".format(x, y))
img = cv2.imread("test.jpg")
cv2.imshow("image", img)
cv2.setMouseCallback("image", callback)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
本例中,当鼠标左键被按下时,回调函数将打印鼠标点击的位置。在程序中,我们使用cv2.imshow()函数显示一张图片,然后使用cv2.setMouseCallback()函数为这张图片的窗口注册鼠标事件回调函数。最后,使用cv2.waitKey()函数等待键盘输入,直到用户按下任意键才关闭窗口。
阅读全文