塘厦网站建设公司,城乡建设部门户网站,国内做seo最好公司,搜索引擎营销经典案例大家好#xff0c;我是csdn的博主#xff1a;lqj_本人 这是我的个人博客主页#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注… 大家好我是csdn的博主lqj_本人 这是我的个人博客主页 lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注小淼前端 小淼前端的个人空间_哔哩哔哩_bilibili 本篇文章主要讲述python的人工智能视觉领域opencv本篇文章已经成功收录python人工智能视觉opencv从入门到实战专栏中 https://blog.csdn.net/lbcyllqj/category_12200666.htmlhttps://blog.csdn.net/lbcyllqj/category_12200666.html 控制鼠标
opencv允许我们对窗口的鼠标动作做出响应 setMouseCallback(winname,callback,userdata) 1.winname是窗口的名字 2.callback是回调函数 3.userdata是给回调函数的参数 callback(event,x,y,flags,userdata)回调函数必须包含这5个参数 1.event事件鼠标拖动左键右键等 2.x,y点击鼠标的坐标点 3.flags主要用于组合键 4.userdata上面的setMouseCallback的userdata 鼠标事件 EVENT_MOUSEMOVE 0 鼠标移动 EVENT_LBUTTONDOWN 1 按下鼠标左键 EVENT_RBUTTONDOWN 2 按下鼠标右键 EVENT_MBUTTONDOWN 3 按下鼠标中键 EVENT_LBUTTONUP 4 左键释放 EVENT_RBUTTONUP 5 右键释放 EVENT_MBUTTONUP 6 中键释放 EVENT_LBUTTONDBLCLK 7 左键双击 EVENT_RBUTTONDBLCLK 8 右键双击 EVENT_MBUTTONDBLCLK 9 中键双击 EVENT_MOUSEWHEEL 10 鼠标滚轮上下滚动 EVENT_MOUSEHWHEEL 11 鼠标左右滚动 flags: EVENT_FLAG_LBUTTON 1 按下左键 EVENT_FLAG_RBUTTON 2 按下右键 EVENT_FLAG_MBUTTON 4 按下右键 EVENT_FLAG_CRTLKEY 8 按下ctrl键 EVENT_FLAG_SHIFTKEY 16 按下shift键 EVENT_FLAG_ALTKEY 32 按下alt键 导入相应的库
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()
效果展示
当鼠标出现在窗口中时即开始跟踪鼠标的位置并完成位置的实时打印 完整学习代码
import cv2
import numpy as npdef 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()