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中的__getitem__专有方法
Jun 27 Python
Python 常用的安装Module方式汇总
May 06 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
获取Django项目的全部url方法详解
Oct 26 Python
Django中的ajax请求
Oct 19 Python
python事件驱动event实现详解
Nov 21 Python
Form表单及django的form表单的补充
Jul 25 Python
基于Python执行dos命令并获取输出的结果
Dec 30 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Python 必须了解的5种高级特征
Sep 10 Python
python 代码运行时间获取方式详解
Sep 18 Python
python tqdm用法及实例详解
Jun 16 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之XML转数组函数的详解
2013/06/07 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
用Python中的字典来处理索引统计的方法
2015/05/05 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
基于django传递数据到后端的例子
2019/08/16 Python
python批量修改xml属性的实现方式
2020/03/05 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
思想政治教育专业个人求职信范文
2013/12/20 职场文书
回门宴父母答谢词
2014/01/26 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
争先创优个人总结
2015/03/04 职场文书
《学会看病》教学反思
2016/02/17 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android