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实现探测socket和web服务示例
Mar 28 Python
python实现删除文件与目录的方法
Nov 10 Python
python正则表达式之对号入座篇
Jul 24 Python
Python3模拟curl发送post请求操作示例
May 03 Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
python编写猜数字小游戏
Oct 06 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
Django解决frame拒绝问题的方法
Dec 18 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 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表单转换textarea换行符的方法
2010/09/10 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
php实现json编码的方法
2015/07/30 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python数据归一化及三种方法详解
2019/08/06 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
python 有效的括号的实现代码示例
2019/11/11 Python
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
2013的个人自我评价
2013/12/26 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
环保公益策划方案
2014/08/15 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
见习报告的格式
2014/10/31 职场文书
青春雷锋观后感
2015/06/10 职场文书
图书馆义工感想
2015/08/07 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python