opencv3/python 鼠标响应操作详解


Posted in Python onDecember 11, 2019

鼠标回调函数:

def setMouseCallback(
windowName,     #窗口名称
onMouse,      #鼠标响应处理函数
param=None)     #处理函数的ID

event鼠标事件:

event:
EVENT_LBUTTONDBLCLK = 7     左键双击
EVENT_LBUTTONDOWN = 1      左键点击
EVENT_LBUTTONUP = 4       左键释放
EVENT_MBUTTONDBLCLK = 9     中间释放
EVENT_MBUTTONDOWN = 3      中间点击
EVENT_MBUTTONUP = 6       中间释放
EVENT_MOUSEHWHEEL = 11     滚轮事件
EVENT_MOUSEMOVE = 0       滑动
EVENT_MOUSEWHEEL = 10      滚轮事件
EVENT_RBUTTONDBLCLK = 8     右键双击
EVENT_RBUTTONDOWN = 2      右键点击
EVENT_RBUTTONUP = 5       右键释放


flags:
EVENT_FLAG_ALTKEY = 32     按Alt不放事件
EVENT_FLAG_CTRLKEY = 8     按Ctrl不放事件
EVENT_FLAG_LBUTTON = 1     左键拖拽
EVENT_FLAG_MBUTTON = 4     中键拖拽
EVENT_FLAG_RBUTTON = 2     右键拖拽
EVENT_FLAG_SHIFTKEY = 16    按Shift不放事件

示例

在图像上用鼠标点击左键拖拽画一矩形,并输出矩形信息:

import cv2
def draw_rectangle(event,x,y,flags,param):
  global ix, iy
  if event==cv2.EVENT_LBUTTONDOWN:
    ix, iy = x, y
    print("point1:=", x, y)
  elif event==cv2.EVENT_LBUTTONUP:
    print("point2:=", x, y)
    print("width=",x-ix)
    print("height=", y - iy)
    cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 2)

img = cv2.imread("max.png") #加载图片
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_rectangle)
while(1):
  cv2.imshow('image', img)
  if cv2.waitKey(20) & 0xFF == 27:
    break
cv2.destroyAllWindows()

输出:

point1:= 254 64
point2:= 708 569
width= 454
height= 505

opencv3/python 鼠标响应操作详解

以上这篇opencv3/python 鼠标响应操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
Python操作串口的方法
Jun 17 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
Python基础教程之异常详解
Jan 10 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
python实现计算器功能
Oct 31 Python
Python识别处理照片中的条形码
Nov 16 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 Python
Python实现生成bmp图像的方法
Jun 13 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
通过实例简单了解Python中yield的作用
Dec 11 #Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 #Python
centos7中安装python3.6.4的教程
Dec 11 #Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 #Python
Python3 中作为一等对象的函数解析
Dec 11 #Python
opencv3/C++图像像素操作详解
Dec 10 #Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 #Python
You might like
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
nodeJS微信分享
2017/12/20 NodeJs
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
Python使用getpass库读取密码的示例
2017/10/10 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
python制作抽奖程序代码详解
2021/01/15 Python
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
团工委书记自荐书范文
2013/12/17 职场文书
大学活动总结范文
2014/04/29 职场文书
医德医魂心得体会
2014/09/11 职场文书
人大代表选举标语
2014/10/07 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python