opencv锁定鼠标定位的实现

 更新时间:2023年02月16日 09:37:01   作者:lqj_本人  
本文主要介绍了opencv锁定鼠标定位的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

控制鼠标

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

到此这篇关于opencv锁定鼠标定位的实现的文章就介绍到这了,更多相关opencv锁定鼠标定位内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一行Python命令实现批量加水印

    一行Python命令实现批量加水印

    工作的时候,尤其是自媒体工作者,必备水印添加工具以保护知识产权。本文为大家提供了一个快速加水印的方法:一行Python命令就能实现,快来了解一下吧
    2022-04-04
  • python爬取网易云音乐排行榜实例代码

    python爬取网易云音乐排行榜实例代码

    大家好,本篇文章主要讲的是python爬取网易云音乐排行榜数据代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • python实现定时发送邮件到指定邮箱

    python实现定时发送邮件到指定邮箱

    这篇文章主要为大家详细介绍了python实现定时发送邮件到指定邮箱,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Python进程的通信Queue、Pipe实例分析

    Python进程的通信Queue、Pipe实例分析

    这篇文章主要介绍了Python进程的通信Queue、Pipe,结合实例形式分析了Python进程通信Queue、Pipe基本概念、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • pytorch 多分类问题,计算百分比操作

    pytorch 多分类问题,计算百分比操作

    这篇文章主要介绍了pytorch 多分类问题,计算百分比操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python3.x读写文件及BOM处理详解

    python3.x读写文件及BOM处理详解

    这篇文章主要为大家详细介绍了python3.x读写文件及BOM处理的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • python中如何使用朴素贝叶斯算法

    python中如何使用朴素贝叶斯算法

    本文主要介绍了python中如何使用朴素贝叶斯算法的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Python中的变量与常量

    Python中的变量与常量

    本文基于Python基础,主要介绍了Python基础中变量和常量的区别,对于变量的用法做了详细的讲解,用丰富的案例 ,代码效果图的展示帮助大家更好理解,需要的朋友可以参考下
    2021-11-11
  • python网络编程学习笔记(九):数据库客户端 DB-API

    python网络编程学习笔记(九):数据库客户端 DB-API

    这篇文章主要介绍了python 数据库客户端 DB-API的相关资料,需要的朋友可以参考下
    2014-06-06
  • Python MySQL查询限制方式详解

    Python MySQL查询限制方式详解

    MySQL是一款广泛使用的关系型数据库,而Python是一门流行的编程语言,在进行数据库操作时,二者的结合可以帮助我们更加高效地进行操作和管理,这篇文章主要介绍了Python MySQL查询限制,需要的朋友可以参考下
    2023-11-11

最新评论