如何从图像中提取FAST功能

How can I extract FAST features from an image?

本文关键字:提取 FAST 功能 图像      更新时间:2023-10-16

我想提取FAST特征,基于Features2D+同态来找到已知对象

  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和FastFeatureDetectors类继承自Detector,可以进行交换。但我找不到SurfDescriptorExtractor的匹配类。我本想找到类似FastDescriptorExtractor的类,但这样的类不可用。奇怪的是,如果我只将Detector更改为FastFeatureDetector,这个例子似乎可以正常工作。

我的问题是:对于Fast功能,上面的序列应该是什么样子?

据我所知,OpenCV中没有FAST特征提取器。与SURF既可用于特征检测又可用于特征向量计算不同,FAST主要用于检测特征点。在获得特征点后,您需要使用其他一些特征提取器来生成特征向量并进行匹配。或者,如果你关心速度,在OpenCV 2.3中,引入了ORB功能,它实际上使用多尺度FAST(加上一些Harris角测量)作为检测器。用法类似于SURF:

OrbFeatureDetector detector(n_features);
OrbDescriptorExtractor extractor(patch_size);

您需要将示例中的匹配器更改为基于汉明距离的匹配器。希望这能有所帮助。