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批量提交沙箱问题实例
Oct 08 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
分析用Python脚本关闭文件操作的机制
Jun 28 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
Python 忽略文件名编码的方法
Aug 01 Python
Python JSON常用编解码方法代码实例
Sep 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
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
PHP分享图片的生成方法
2018/04/25 PHP
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
javascript实现日历效果
2019/06/17 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
python中Flask框架简单入门实例
2015/03/21 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
卫校护理专业毕业生求职信
2013/11/26 职场文书
服务员岗位职责
2014/01/29 职场文书
物理教学随笔感言
2014/02/22 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
初中学习计划书范文
2014/09/15 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
节水倡议书
2015/01/19 职场文书
离职感谢信
2015/01/21 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
Elasticsearch 基本查询和组合查询
2022/04/19 Python