文章目录
使用鼠标图像上画出矩形
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中的鼠标点击事件】----------------------------
//全局变量

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

被折叠的 条评论
为什么被折叠?



