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 域名分析工具实现代码
Jul 15 Python
跟老齐学Python之编写类之三子类
Oct 11 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
详解python while 函数及while和for的区别
Sep 07 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
jquery中ajax学习笔记一
2011/10/16 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
python实现的文件夹清理程序分享
2014/11/22 Python
用Python进行行为驱动开发的入门教程
2015/04/23 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
python实现电子词典
2020/03/03 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
pandas的resample重采样的使用
2020/04/24 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
八年级语文教学反思
2014/02/11 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
公司庆典欢迎词
2015/01/26 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
PHP中->和=>的意思
2021/03/31 PHP
Python预测分词的实现
2021/06/18 Python