特征描述子提取公用接口

来源:互联网 发布:手游源码交易 编辑:程序博客网 时间:2024/04/28 22:43

OpenCV封装了一些特征描述子提取算法,使得用户能够解决该问题时候方便使用各种算法。这章用来计算的描述子提取被表达成一个高维空间的向量 vector.所有实现 vector 特征描述子子提取的部分继承了 DescriptorExtractor 接口.

DescriptorExtractor

class DescriptorExtractor

抽象基类 for 对图像关键点计算特征描述子.

class CV_EXPORTS DescriptorExtractor{public:    virtual ~DescriptorExtractor();    void compute( const Mat& image, vector<KeyPoint>& keypoints,                  Mat& descriptors ) const;    void compute( const vector<Mat>& images, vector<vector<KeyPoint> >& keypoints,                  vector<Mat>& descriptors ) const;    virtual void read( const FileNode& );    virtual void write( FileStorage& ) const;    virtual int descriptorSize() const = 0;    virtual int descriptorType() const = 0;    static Ptr<DescriptorExtractor> create( const string& descriptorExtractorType );protected:    ...};

在这个接口中, 一个关键点的特征描述子可以被表达成密集(dense),固定维数的向量。 大部分特征描述子按照这种模式每隔固定个像素计算。特征描述子的集合被表达成 Mat , 其中每一行是一个关键的特征描述子.

DescriptorExtractor::compute

根据检测到的图像(第一种情况)或者图像集合(第二种情况)中的关键点(检测子)计算描述子.

C++: void DescriptorExtractor::compute(const Mat& image, vector<KeyPoint>& keypoints, Mat& descriptors) const
C++: void DescriptorExtractor::compute(const vector<Mat>& images, vector<vector<KeyPoint>>& keypoints, vector<Mat>& descriptors) const
Parameters:
  • image – 图像.
  • images – 图像集.

:param keypoints:输入的特征关键点. 不能被计算特征描述子的关键点被略过. 另外一些情况新的特征关键点增加进来, 比如: SIFT 增加了几个主方向上的特征关键点.

Parameters:
  • descriptors – 计算特征描述子. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]`. Row ``j is the keypoints(or keypoints[i]) is the descriptor for keypoint j-th keypoint.

DescriptorExtractor::read

从文件点中读取特征描述子提取的对象.

C++: void DescriptorExtractor::read(const FileNode& fn)
Parameters:
  • fn – 读取的文件点.

DescriptorExtractor::write

写入特征描述子的提取的对象到文件.

C++: void DescriptorExtractor::write(FileStorage& fs) const
Parameters:
  • fs – 写入的文件.

DescriptorExtractor::create

根据名字创建特征描述子提取.

C++: Ptr<DescriptorExtractor> DescriptorExtractor::create(const string& descriptorExtractorType)
Parameters:
  • descriptorExtractorType – Descriptor extractor type.

现有实现支持以下几个类型的特征描述子提取方法:

  • "SIFT" – SiftDescriptorExtractor
  • "SURF" – SurfDescriptorExtractor
  • "ORB" – OrbDescriptorExtractor
  • "BRIEF" – BriefDescriptorExtractor

A combined format is also supported: descriptor extractor adapter name ( "Opponent" – OpponentColorDescriptorExtractor ) + descriptor extractor name (see above), for example: "OpponentSIFT" .



0 0
原创粉丝点击