openCV控制鼠标
SetMouseCallback(winname,callback,userdata): 设置鼠标回调函数
winname:窗口名字
callback:自定义回调函数
userdata:在设置回调函数时可以给函数callback传参,不传参数也可以设置为null
callback(exent,x,y,flags,userdata):自定义的回调函数,但是参数必须一致
exent:鼠标点击事件,比如点左键,点右键或者中间键(看下图官方文档,下列值从0-11)
x,y:鼠标所在位置坐标
flags:主要用于组合键,比如ctrl+鼠标(下图官方文档,下列值从0-5)
userdata:SetMouseCallback中参数传过来的
以下代码是在黑屏上点击鼠标,打印出鼠标各种信息
import cv2
import numpy as np
def mouse_callback(event,x,y,flags,userdata):
print(event,x,y,flags,userdata)
#创建窗口
cv2.namedWindow('mouse',cv2.WINDOW_NORMAL)
cv2.resizeWindow('mouse',640,360)
#设置鼠标回调函数
cv2.setMouseCallback('mouse',mouse_callback,'123')
#显示窗口和背景
img = np.zeros((360,640,3),np.uint8)
while True:
cv2.imshow('mouse',img)
key = cv2.waitKey(1)
if key & 0xff == ord('q'):
break
cv2.destroyAllWindows()
随意在窗口中点击鼠标,打印出如下数据