opencv控制鼠标

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中参数传过来的
opencv控制鼠标_第1张图片
opencv控制鼠标_第2张图片
以下代码是在黑屏上点击鼠标,打印出鼠标各种信息

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()


随意在窗口中点击鼠标,打印出如下数据
opencv控制鼠标_第3张图片

你可能感兴趣的:(opencv,人工智能,计算机视觉)