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