如何从图像中提取FAST功能?

sta*_*ker 2 c++ opencv

我想提取基于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,则示例似乎正常工作.

我的问题是:对于快速功能,上述序列应该如何?

cxy*_*zs7 8

据我所知,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)

您需要将示例中的匹配器更改为基于汉明距离的匹配器.希望这可以帮助.