Python Opencv 实现鼠标事件(包含一个练习)——事件触发讲解·以及鼠标回调函数的实现

本文详细介绍了如何在Python中利用OpenCV实现鼠标事件,包括鼠标回调函数的创建、不同鼠标事件的识别(如点击、双击、滚动等),以及如何通过鼠标事件在图像上绘制图形。此外,还提供了一个练习案例,通过鼠标点击生成三角形,并在按下M键时翻转图形。读者将学会如何实现交互式的计算机视觉应用。
摘要由CSDN通过智能技术生成

                         QQ:3020889729                                                                                 小蔡

鼠标事件概述

opencv可以实现gui拥有的功能——所以,opencv中也包含了鼠标事件——通过点击等等事件,执行相应的回调函数,实现指定的功能,最终实现交互!!!

鼠标事件发生的结构

鼠标回调函数的标准格式

鼠标回调函数的构造:函数名任意——但是参数应依次包含:event(事件),x, y,flags(标志),param(其它参数)
补充一下:事件和标志都可以作为事件触发的条件!!!

import cv2 as cv
import numpy as np

def mouse_circle(event, x, y, flags, param):  
	if event == cv.EVENT_LBUTTONDOWN:  # 该事件为鼠标左键按下
		pass  # 执行任务

opencv下包含的所有事件——包含flag和event(可以看一下,熟悉常见事件范围)

事件列表:

  • if event == cv.EVENT_LBUTTONDBLCLK: # 触发事件为左键双击
  • if event == cv.EVENT_LBUTTONDOWN: # 触发事件为左键按下时
  • if event == cv.EVENT_LBUTTONUP: # 触发事件为左键弹起时
  • if event == cv.EVENT_RBUTTONDBLCLK: # 触发事件为右键双击时
  • if event == cv.EVENT_RBUTTONDOWN: # 触发事件为右键按下时
  • if event == cv.EVENT_RBUTTONUP: # 触发事件为右键弹起时
  • if event == cv.EVENT_MBUTTONDBLCLK: # 触发事件为中键滚轮双击时
  • if event == cv.EVENT_MBUTTONDOWN: # 触发事件为中键滚轮按下时
  • if event == cv.EVENT_MBUTTONUP: # 触发事件为中键滚轮弹起时
  • if event == cv.EVENT_MOUSEWHEEL: # 触发事件为中键滚轮滚动时
  • if event == cv.EVENT_MOUSEMOVE: # 触发事件为鼠标移动时

标志列表:

  • if flags == cv.EVENT_FLAG_ALTKEY: # 触发标志为ALT键按下时
  • if flags == cv.EVENT_FLAG_CTRLKEY: # 触发标志为CTRL键按下时
  • if flags == cv.EVENT_FLAG_LBUTTON: # 触发标志为鼠标左键按下时
  • if flags == cv.EVENT_FLAG_MBUTTON: # 触发标志为鼠标中键滚轮按下时<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL not error

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值