上一篇:戳这里
一、引言
本篇笔记介绍如何使用OpenCV控制鼠标。
二、相关方法
关于鼠标控制设计到的方法为setMouseCallback,共有三个参数:窗口名、回调函数以及额外的参数,值得一提的是,额外参数将会作为回调函数的参数传入。
而回调函数的定义需要遵循一定的格式,由5个参数组成:event(鼠标点击事件),x、y(鼠标在窗口上的坐标)、flags(用于区分组合键情况的数字标记)以及userdata(由setMouseCallback传入)
三、代码实现
import cv2
import numpy as np
#创建回调函数
def mouse_callback(event, x, y, flags, userdata):
print(event, x, y, flags, userdata)
#mouse_callback(1, 100, 100, 16, "666")
#创建窗口
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正是依此来识别不同的鼠标事件。