C++ opencv鼠标事件,在图像上画矩形

本文介绍了如何在C++的OpenCV中利用鼠标事件在图像上画出矩形。通过设置鼠标回调函数setMouseCallback,结合MouseCallback函数,可以在图像窗口响应鼠标操作,动态绘制矩形。在鼠标事件中,需要记录鼠标按下时的起始位置,然后根据鼠标移动后的位置来确定矩形的大小和方向。测试代码中展示了基本的矩形绘制,但若要实现任意方向的矩形绘制,还需添加额外的坐标判断逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用鼠标图像上画出矩形

opencv中常用的除了TrackBar滑动条事件,还有丰富的鼠标事件,与TrackBar类似,鼠标事件也是使用回调函数判断动作的发生,并执行相关的操作。整个行为与QT的信号与槽类似。
在图像中画出矩形,需要使用setMouseCallback()和MouseCallback()函数。

本文使用的头文件及命名空间:

#pragma once
#include <opencv2\opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

设置鼠标回调函数:
在这里插入图片描述

winname :显示图像的窗口名
onMouse : 自定义的鼠标回调函数
userdata : 输入的无类型指针参数,即Mat图像的地址

鼠标回调函数:取名可以不同,但是参数类型与数目需要一致
在这里插入图片描述

event : 鼠标事件中的某一种
x : 当前鼠标的位置的横坐标
y :当前鼠标的位置的纵坐标
flags : 鼠标事件标志的某一种
userdata : 传入的无类型指针参数

鼠标事件类型:
在这里插入图片描述
测试代码:

使用鼠标在图像上画出矩形,需要记录鼠标按下的起始位置作为矩形的左上角。

//--------------------------【Opencv中的鼠标点击事件】----------------------------
//全局变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值