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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
Python控制Firefox方法总结
Jun 03 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
python代码编写计算器小程序
Mar 30 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
Python 实现绘制子图及子图刻度的变换等问题
May 31 Python
python开发的自动化运维工具ansible详解
Aug 07 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代码优化及php相关问题总结
2006/10/09 PHP
PHP中常用数组处理方法实例分析
2008/08/30 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
js中eval详解
2012/03/30 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
require.js中的define函数详解
2017/07/10 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
Django models文件模型变更错误解决
2020/05/11 Python
python os.rename实例用法详解
2020/12/06 Python
python os.listdir()乱码解决方案
2021/01/31 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
大学生求职简历的自我评价范文
2013/10/12 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
学期个人自我总结
2015/02/13 职场文书
小学总务工作总结
2015/08/13 职场文书