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函数编程的一些特性
Apr 13 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python 字典与字符串的互转实例
Jan 13 Python
python验证码识别实例代码
Feb 03 Python
tensorflow识别自己手写数字
Mar 14 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
python迭代器常见用法实例分析
Nov 22 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
python中的random模块和相关函数详解
Apr 22 Python
virtualenv隔离Python环境的问题解析
Jun 21 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使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php输出图像的方法实例分析
2017/02/16 PHP
php四种定界符详解
2017/02/16 PHP
js下将字符串当函数执行的方法
2011/07/13 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python六大开源框架对比
2015/10/19 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
把pandas转换int型为str型的方法
2019/01/29 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
python实例化对象的具体方法
2020/06/17 Python
python 读取串口数据的示例
2020/11/09 Python
期末考试动员演讲稿
2014/01/10 职场文书
中学生获奖感言
2014/02/04 职场文书
护士长竞聘书
2014/03/31 职场文书
体育专业求职信
2014/07/16 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
五一劳动节慰问信
2015/02/14 职场文书
如何写好活动总结
2019/06/21 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript