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当中的array数组对象实例详解
Jun 12 Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 Python
python科学计算之numpy——ufunc函数用法
Nov 25 Python
Python PyPDF2模块安装使用解析
Jan 19 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
python 6种方法实现单例模式
Dec 15 Python
python实现按日期归档文件
Jan 30 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 Python
python 提取html文本的方法
May 20 Python
pytorch中的model.eval()和BN层的使用
May 22 Python
Python使用华为API为图像设置多个锚点标签
Apr 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中计算程序运行时间的类代码
2012/11/03 PHP
php设计模式小结
2013/02/15 PHP
php-fpm配置详解
2014/02/12 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
Django实现发送邮件功能
2019/07/18 Python
Python 求数组局部最大值的实例
2019/11/26 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
会议邀请书范文
2014/02/02 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
计划生育责任书
2015/05/09 职场文书
2015年国庆节寄语
2015/08/17 职场文书
python源码剖析之PyObject详解
2021/05/18 Python