mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 09:07:47 +08:00
No response filtering here: cv::goodFeaturesToTrack() already applies GFTT/QualityLevel, relative to the best corner's measure. Re-applying it as an absolute floor on KeyPoint::response double-filtered (~86% of keypoints ropped on OpenCV 4.5), and dropped *every* keypoint on OpenCV < 4.5, whose GFTTDetector leaves response at 0.
This commit is contained in:
@@ -2282,20 +2282,6 @@ std::vector<cv::KeyPoint> GFTT::generateKeypointsImpl(const cv::Mat & image, con
|
|||||||
_gftt->detect(imgRoi, keypoints, maskRoi); // Opencv keypoints
|
_gftt->detect(imgRoi, keypoints, maskRoi); // Opencv keypoints
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!_useHarrisDetector && _qualityLevel>0.0)
|
|
||||||
{
|
|
||||||
std::vector<cv::KeyPoint> bestKeypoints;
|
|
||||||
bestKeypoints.reserve(keypoints.size());
|
|
||||||
for(size_t i=0; i<keypoints.size(); ++i)
|
|
||||||
{
|
|
||||||
if(keypoints[i].response > _qualityLevel)
|
|
||||||
{
|
|
||||||
bestKeypoints.push_back(keypoints[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return bestKeypoints;
|
|
||||||
}
|
|
||||||
return keypoints;
|
return keypoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user