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简单实现计算过期时间的方法
Jun 09 Python
Django与JS交互的示例代码
Aug 23 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 Python
Python中单例模式总结
Feb 20 Python
python3+PyQt5泛型委托详解
Apr 24 Python
运行django项目指定IP和端口的方法
May 14 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
matplotlib对象拾取事件处理的实现
Jan 14 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
写好Python代码的几条重要技巧
May 21 Python
pytorch中的model=model.to(device)使用说明
May 24 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
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
python采集百度百科的方法
2015/06/05 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
教师个人的自我评价分享
2014/01/02 职场文书
物流创业计划书
2014/02/01 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
终止合同协议书
2014/04/17 职场文书
建筑施工安全责任书
2014/07/24 职场文书
环境科学专业求职信
2014/08/04 职场文书
教师考核表个人总结
2015/02/12 职场文书
五一劳动节慰问信
2015/02/14 职场文书
女性健康讲座主持词
2015/07/04 职场文书
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers