master
laptoy 5 months ago
parent 40aa711e02
commit 695a3d39d4

@ -1,11 +1,4 @@
/****************************************************************************
*
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#include "PositionManager.h" #include "PositionManager.h"
#include "QGCApplication.h" #include "QGCApplication.h"

@ -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
} }

@ -190,7 +190,6 @@ void KCFTracker::train(cv::Mat x, float train_interp_factor)
_tmpl = (1 - train_interp_factor) * _tmpl + (train_interp_factor) * x; // 更新模板 _tmpl = (1 - train_interp_factor) * _tmpl + (train_interp_factor) * x; // 更新模板
_alphaf = (1 - train_interp_factor) * _alphaf + (train_interp_factor) * alphaf; // 更新高斯核的傅里叶变换 _alphaf = (1 - train_interp_factor) * _alphaf + (train_interp_factor) * alphaf; // 更新高斯核的傅里叶变换
} }

Loading…
Cancel
Save