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 03 Python
python简单获取数组元素个数的方法
Jul 13 Python
python的socket编程入门
Jan 29 Python
Python中max函数用于二维列表的实例
Apr 03 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
Django模板语言 Tags使用详解
Sep 09 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 Python
Python字符串格式化方式
Apr 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
ajax缓存问题解决途径
2006/12/06 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
jquery JSON的解析方式
2009/07/25 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
python显示生日是星期几的方法
2015/05/27 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
python 基于opencv操作摄像头
2020/12/24 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
经典演讲稿范文
2013/12/30 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
创业计划书之熟食店
2019/10/16 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫