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 09 Python
详解Python中映射类型的内建函数和工厂函数
Aug 19 Python
浅析Python 中整型对象存储的位置
May 16 Python
win与linux系统中python requests 安装
Dec 04 Python
深入理解python中的select模块
Apr 23 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
200行python代码实现2048游戏
Jul 17 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
python mysql断开重连的实现方法
Jul 26 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
python Yaml、Json、Dict之间的转化
Oct 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
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
js Array对象的扩展函数代码
2013/04/24 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
MySQL最常见的操作语句小结
2015/05/07 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
Python3实现购物车功能
2018/04/18 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
自我评价中英文语句
2013/11/30 职场文书
人力资源经理自我评价
2014/01/04 职场文书
初一体育教学反思
2014/01/29 职场文书
小学生表扬稿范文
2015/05/05 职场文书
天气温馨提示语
2015/07/14 职场文书
网络研修心得体会
2016/01/08 职场文书