opencv3/python 鼠标响应操作详解
作者:阿卡蒂奥 发布时间:2022-10-11 09:29:52
标签:opencv3,python,鼠标响应
鼠标回调函数:
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
来源:https://blog.csdn.net/akadiao/article/details/80312254


猜你喜欢
- 前言因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目。对Python
- 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况。一些话题("if/
- 前言配置火狐浏览器对应的selenium驱动一、火狐浏览器驱动下载下载地址根据对应的系统环境下载相应的压缩包(这里下载的是Windows系统
- 本文实例讲述了Python图像的增强处理操作。分享给大家供大家参考,具体如下:python中PIL模块中有一个叫做ImageEnhance的
- 目标:利用python读取dicom文件,并进行处理生成info.txt和raw文件实现:通过pydicom读取dicom文件代码:impo
- 这篇文章主要介绍了flask的orm框架SQLAlchemy查询实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 适合各种浏览器的js拖动层,ie,firefox等,调用方便!<!DOCTYPE HTML PUBLIC "-//W3C//
- asp学习入门经验介绍,本文初步介绍了初学asp的一些相关知识,如VBScript语法简介,循环控制语句的使用,asp数据库的简单操作查询,
- 在Qt中经常需要使用样式,为了降低耦合性(与逻辑代码分离),我们通常会定义一个QSS文件,然后编写各种控件(QLabel,QLIneEdit
- 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar第二步:导入下载的JDB
- 本文实例讲述了js中火星坐标、百度坐标、WGS84坐标转换实现方法。分享给大家供大家参考,具体如下://定义一些常量var x_PI = 3
- 下载opencv2.4.9(python2.7匹配)后 (1)运行OpenCV 2.4.9.exe;(2)配置Python:将\opencv
- 上一篇中,我们已经打开了Django自带的用户认证模块,并配置了数据库连接,创建了相应的表,本篇我们将在Django自带的用户认证的基础上,
- 之前有文章,使用Android平台的OpenCV接入了视频,控制的目标是手机的摄像头,这是OpenCV的好处,使用OpenCV可以使用跨平台
- 我就废话不多说了,大家还是直接看代码吧!### 以下链接里面的codeimport numpy as npfrom keras.callba
- 本文实例讲述了Python操作多维数组输出和矩阵运算。分享给大家供大家参考,具体如下:在许多编程语言中(Java,COBOL,BASIC),
- 本文实例讲述了Python面向对象程序设计之类的定义与继承。分享给大家供大家参考,具体如下:定义类:class A: def _
- 首先说明代码只是帮助理解,并未写出梯度下降部分,默认参数已经被固定,不影响理解。代码主要实现RNN原理,只使用numpy库,不可用于GPU加
- 本文实例讲述了Python数据结构与算法之完全树与最小堆。分享给大家供大家参考,具体如下:# 完全树 最小堆class CompleteTr
- 需求:主线程开启了多个线程去干活,每个线程需要完成的时间不同,但是在干完活以后都要通知给主线程下面上代码:#!/usr/bin/python