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实现模拟按键,自动翻页看u17漫画
Mar 17 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
python内置数据类型之列表操作
Nov 12 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
Python用61行代码实现图片像素化的示例代码
Dec 10 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
Python趣味入门教程之循环语句while
Aug 26 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 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 程序授权验证开发思路
2009/07/09 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
php显示页码分页类的封装
2017/06/08 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
Python datetime时间格式化去掉前导0
2014/07/31 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
求职信范文怎么写
2014/01/29 职场文书
关于学习的演讲稿
2014/05/10 职场文书
节约用水的口号
2014/06/20 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
2016银行求职自荐信
2016/01/28 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
java设计模式--建造者模式详解
2021/07/21 Java/Android
Python学习之时间包使用教程详解
2022/03/21 Python