|
|
@ -147,8 +147,7 @@ void bboxDrawCb(const gimbal_track::WindowPosition::ConstPtr &msg)
|
|
|
|
void onMouse(int event, int x, int y, int, void *)
|
|
|
|
void onMouse(int event, int x, int y, int, void *)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 如果正在选择区域
|
|
|
|
// 如果正在选择区域
|
|
|
|
if (select_flag)
|
|
|
|
if (select_flag){
|
|
|
|
{
|
|
|
|
|
|
|
|
// 更新选择区域的坐标和大小
|
|
|
|
// 更新选择区域的坐标和大小
|
|
|
|
selectRect.x = MIN(origin.x, x); // 选择区域的左上角x坐标是最小值
|
|
|
|
selectRect.x = MIN(origin.x, x); // 选择区域的左上角x坐标是最小值
|
|
|
|
selectRect.y = MIN(origin.y, y); // 选择区域的左上角y坐标是最小值
|
|
|
|
selectRect.y = MIN(origin.y, y); // 选择区域的左上角y坐标是最小值
|
|
|
@ -158,23 +157,19 @@ void onMouse(int event, int x, int y, int, void *)
|
|
|
|
selectRect &= cv::Rect(0, 0, frameWidth_, frameHeight_);
|
|
|
|
selectRect &= cv::Rect(0, 0, frameWidth_, frameHeight_);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 如果是鼠标左键按下事件
|
|
|
|
// 如果是鼠标左键按下事件
|
|
|
|
if (event == CV_EVENT_LBUTTONDOWN)
|
|
|
|
if (event == CV_EVENT_LBUTTONDOWN){
|
|
|
|
{
|
|
|
|
|
|
|
|
bBeginKCF = false; // 标志位,表示不开始KCF跟踪
|
|
|
|
bBeginKCF = false; // 标志位,表示不开始KCF跟踪
|
|
|
|
select_flag = true; // 标志位,表示开始选择区域
|
|
|
|
select_flag = true; // 标志位,表示开始选择区域
|
|
|
|
origin = cv::Point(x, y); // 记录鼠标按下的起始点
|
|
|
|
origin = cv::Point(x, y); // 记录鼠标按下的起始点
|
|
|
|
selectRect = cv::Rect(x, y, 0, 0); // 初始化选择区域
|
|
|
|
selectRect = cv::Rect(x, y, 0, 0); // 初始化选择区域
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 如果是鼠标左键释放事件
|
|
|
|
// 如果是鼠标左键释放事件
|
|
|
|
else if (event == CV_EVENT_LBUTTONUP)
|
|
|
|
else if (event == CV_EVENT_LBUTTONUP){
|
|
|
|
{
|
|
|
|
|
|
|
|
// 如果选择区域的面积小于64(可能是一个无效的选择)
|
|
|
|
// 如果选择区域的面积小于64(可能是一个无效的选择)
|
|
|
|
if (selectRect.width * selectRect.height < 64)
|
|
|
|
if (selectRect.width * selectRect.height < 64){
|
|
|
|
{
|
|
|
|
|
|
|
|
// 不执行任何操作
|
|
|
|
// 不执行任何操作
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else{
|
|
|
|
{
|
|
|
|
|
|
|
|
select_flag = false; // 标志位,表示结束选择区域
|
|
|
|
select_flag = false; // 标志位,表示结束选择区域
|
|
|
|
bRenewROI = true; // 标志位,表示需要更新ROI
|
|
|
|
bRenewROI = true; // 标志位,表示需要更新ROI
|
|
|
|
}
|
|
|
|
}
|
|
|
|