我正在使用 openCV FastFeatureDetector 从图像中提取快速关键点。
但 FastFeatureDetector 检测的数量不是 const 数字。
我想设置 FastFeatureDetector 获取的最大关键点数。
我可以指定使用 openCV FastFeatureDetector 时获得的 FAST 关键点数
吗?
问问题
1335 次
3 回答
1
我最近遇到了这个问题,经过简短的搜索后,我发现 DynamicAdaptedFeatureDetector 迭代地检测关键点,直到找到所需的数字。
代码:
int maxKeypoints, minKeypoints;
Ptr<FastAdjuster> adjust = new FastAdjuster();
Ptr<FeatureDetector> detector = new DynamicAdaptedFeatureDetector(adjust,minKeypoints,maxKeypoints,100);
vector<KeyPoint> keypoints;
detector->detect(image, keypoints);
于 2014-11-13T21:53:19.130 回答
0
我提供了代码的主要部分,在这种情况下,您可以将关键点的数量设置为您所期望的。祝你好运。
# define MAX_FEATURE 500 // specify maximum expected feature size
string detectorType = "FAST";
string descriptorType = "SIFT";
detector = FeatureDetector::create(detectorType);
extractor = DescriptorExtractor::create(descriptorType);
Mat descriptors;
vector<KeyPoint> keypoints;
detector->detect(img, keypoints);
if( keypoints.size() > MAX_FEATURE )
{
cout << " [INFO] key-point 1 size: " << keypoints.size() << endl;
KeyPointsFilter::retainBest(keypoints, MAX_FEATURE);
}
cout << " [INFO] key-point 2 size: " << keypoints.size() << endl;
extractor->compute(img, keypoints, descriptors);
于 2015-02-24T15:00:20.007 回答