特征描述子提取公用接口

本文详细解释了OpenCV中用于计算图像关键点特征描述子的接口DescriptorExtractor,包括其工作原理、参数说明及如何使用不同类型的特征描述子提取方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值