opencv提供了多少個特徵點的descriptor?

我知道 OpenCV 提供了10種特徵檢測方法:

  • "FAST"
    – FastFeatureDetector
  • "STAR"
    – StarFeatureDetector
  • "SIFT"
    – SIFT (nonfree module)
  • "SURF"
    – SURF (nonfree module)
  • "ORB"
    – ORB
  • "MSER"
    – MSER
  • "GFTT"
    – GoodFeaturesToTrackDetector
  • "HARRIS"
    – GoodFeaturesToTrackDetector with Harris detector enabled
  • "Dense"
    – DenseFeatureDetector
  • "SimpleBlob"
    – SimpleBlobDetector

特徵描述子有那些呢?


答案都在代碼中。

OpenCV 中和 2D 特徵檢測相關的演算法的頭文件位於

  • opencvmodulesfeatures2dincludeopencv2features2d.hpp,除SIFT、SURF以外的特徵。

  • opencvmodules
    onfreeincludeopencv2
    onfreefeatures2d.hpp,只包含SIFT、SURF這兩個受專利保護的特徵,因此不是免費的(nonfree)。

我們來看具體的類

DescriptorExtractor 的子類都是描述子提取器,包含

  • FREAK

  • OpponentColorDescriptorExtractor

  • BriefDescriptorExtractor

FeatureDetector 的子類都是特徵檢測器,包含

  • MSER

  • StarDetector,又名 StarFeatureDetector

  • FastFeatureDetector

  • GFTTDetector,又名 GoodFeaturesToTrackDetector

  • SimpleBlobDetector

  • DenseFeatureDetector

FeatureDetector 還提供一系列特殊的適配器子類,用於增強或加速之前的 FeatureDetector 類

  • GridAdaptedFeatureDetector

  • PyramidAdaptedFeatureDetector
  • AdjusterAdapter

  • DynamicAdaptedFeatureDetector

  • FastAdjuster

  • StarAdjuster

  • SurfAdjuster

Feature2D 的子類既是 FeatureDetector,又是 DescriptorExtractor,包含

  • BRISK

  • ORB

  • SIFT

  • SURF

希望這個回答可以授之以漁。


推薦閱讀:

TAG:OpenCV | 計算機視覺 | 特徵提取 |