前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >opencv锁定鼠标定位

opencv锁定鼠标定位

作者头像
淼学派对
发布2023-10-14 11:00:42
1470
发布2023-10-14 11:00:42
举报
文章被收录于专栏:云开发小程序1

控制鼠标

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键

导入相应的库

代码语言:javascript
复制
import cv2
import numpy as np

创建方法

创建并输出回调函数的五个参数

代码语言:javascript
复制
def mouse_callback(event,x,y,flags,userdata):
    print(event,x,y,flags,userdata)

创建窗口

代码语言:javascript
复制
cv2.namedWindow('mouse',cv2.WINDOW_NORMAL)
cv2.resizeWindow('mouse',640,360)

设置鼠标回调函数

代码语言:javascript
复制
cv2.setMouseCallback('mouse',mouse_callback,'123')

设置生成的窗口背景

代码语言:javascript
复制
img = np.zeros((360,640,3),np.uint8)

绑定键盘监听事件

代码语言:javascript
复制
while True:
    cv2.imshow('mouse',img)
    key = cv2.waitKey(1)
    if key & 0XFF == ord('q'):
        break

释放窗口

代码语言:javascript
复制
cv2.destroyAllWindows()

效果展示

当鼠标出现在窗口中时,即开始跟踪鼠标的位置,并完成位置的实时打印!

 完整学习代码

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 控制鼠标
    • opencv允许我们对窗口的鼠标动作做出响应:
      • 导入相应的库
        • 创建方法
          • 创建窗口
            • 设置鼠标回调函数
              • 设置生成的窗口背景
                • 绑定键盘监听事件
                  • 释放窗口
                  • 效果展示
                  •  完整学习代码
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档