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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
Python 字符串与数字输出方法
Jul 16 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
Python坐标线性插值应用实现
Nov 13 Python
python使用配置文件过程详解
Dec 28 Python
python3读取csv文件任意行列代码实例
Jan 13 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
Python中qutip用法示例详解
Oct 02 Python
用python对oracle进行简单性能测试
Dec 05 Python
python中%格式表达式实例用法
Jun 18 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python实现矩阵打印
2019/03/02 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python连接mysql有哪些方法
2020/06/24 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
工商管理专业学生的自我评价
2013/10/01 职场文书
焊接专业毕业生求职信
2013/10/01 职场文书
自我鉴定三原则
2014/01/13 职场文书
大学生自我鉴定范文模板
2014/01/21 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
药房管理制度范本
2015/08/06 职场文书
导游词之青岛崂山
2019/12/27 职场文书