python鼠标事件 详解_opencv3/python 鼠标响应操作详解

本文介绍了如何使用OpenCV3和Python实现鼠标响应功能,特别是在图像上通过鼠标左键点击并拖拽绘制矩形。通过设置鼠标回调函数`setMouseCallback`,可以监听鼠标事件,如左键点击、释放等,从而实现图像上的交互操作。示例代码演示了从鼠标按下到释放的事件处理,用于在图片上画出矩形并输出其坐标和尺寸。
摘要由CSDN通过智能技术生成

opencv3/python 鼠标响应操作详解

发布时间:2020-10-02 13:53:01

来源:脚本之家

阅读:74

作者:阿卡蒂奥

鼠标回调函数:

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

5a3387eb37c15da3cccff4834c55ad63.png

以上这篇opencv3/python 鼠标响应操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值