opencv锁定鼠标定位

该文章介绍了如何在Python的OpenCV库中使用鼠标事件进行交互,包括设置鼠标回调函数、解析鼠标事件类型以及处理鼠标坐标和按键状态。通过示例代码展示了如何创建窗口,监听鼠标移动、点击等行为,并实时打印鼠标位置信息。
摘要由CSDN通过智能技术生成

  大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼前端

小淼前端的个人空间_哔哩哔哩_bilibili

本篇文章主要讲述python的人工智能视觉领域(opencv),本篇文章已经成功收录python人工智能视觉(opencv)从入门到实战专栏中:

https://blog.csdn.net/lbcyllqj/category_12200666.htmlicon-default.png?t=N176https://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 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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淼学派对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值