我想提取基于Features2D + Homography的 FAST功能来查找已知对象
SurfFeatureDetector detector( minHessian );
std::vector<KeyPoint> keypoints_object, keypoints_scene;
detector.detect( img_object, keypoints_object );
detector.detect( img_scene, keypoints_scene );
//-- Step 2: Calculate descriptors (feature vectors)
SurfDescriptorExtractor extractor;
Run Code Online (Sandbox Code Playgroud)
SurfFeatureDetector和FastFeatureDetector类继承自Detector,可以进行交换.但我找不到SurfDescriptorExtractor的匹配类我希望找到像FastDescriptorExtractor这样的类,但这样的类不可用.似乎很奇怪的是,如果我只将Detector更改为FastFeatureDetector,则示例似乎正常工作.
我的问题是:对于快速功能,上述序列应该如何?
据我所知,OpenCV中没有FAST特征提取器.与可用于特征检测和特征向量计算的SURF不同,FAST主要用于检测特征点.获取要素点后,需要使用其他一些特征提取器生成要素向量并进行匹配.或者,如果您关注速度,在OpenCV 2.3中,会引入ORB功能,它实际上使用多尺度FAST(加上一些Harris角点测量)作为其检测器.用法类似于SURF:
OrbFeatureDetector detector(n_features);
OrbDescriptorExtractor extractor(patch_size);
Run Code Online (Sandbox Code Playgroud)
您需要将示例中的匹配器更改为基于汉明距离的匹配器.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
7181 次 |
| 最近记录: |