我想提取快速的特征,基于Features2D + Homography to find a known object
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;类SurfFeatureDetector和FastFeatureDetector是从检测器继承的,可以交换。但是我找不到与SurfDescriptorExtractor匹配的类,我希望能找到像FastDescriptorExtractor这样的类,但是这样的类是不可用的。奇怪的是,如果我只将检测器更改为FastFeatureDetector,则该示例似乎可以正常工作。
我的问题是:对于Fast功能,上面的序列应该是什么样子的?
发布于 2012-03-30 03:11:10
据我所知,OpenCV中没有快速的特征提取器。与SURF不同,SURF既可用于特征检测,也可用于特征向量计算,FAST主要用于检测特征点。在获得特征点之后,您需要使用其他一些特征提取器来生成特征向量并进行匹配。或者,如果你关心速度,在OpenCV 2.3中,引入了ORB特性,它实际上使用多尺度快速(加上一些哈里斯角点测量)作为其检测器。其用法类似于SURF:
OrbFeatureDetector detector(n_features);
OrbDescriptorExtractor extractor(patch_size);您需要将示例中的匹配器更改为基于汉明距离的匹配器。希望这能有所帮助。
https://stackoverflow.com/questions/9919505
复制相似问题