这章描述了局部2维图像特征相关算法和基于这些特征的二维图像中的物体目标分类。
给定训练图像的特征描述子集,该抽象基类用于训练 视觉词典包 词典. 具体参考文章 Visual Categorization with Bags of Keypoints by Gabriella Csurka, Christopher R. Dance, Lixin Fan, Jutta Willamowski, Cedric Bray, 2004.
class BOWTrainer
{
public:
BOWTrainer(){}
virtual ~BOWTrainer(){}
void add( const Mat& descriptors );
const vector<Mat>& getDescriptors() const;
int descripotorsCount() const;
virtual void clear();
virtual Mat cluster() const = 0;
virtual Mat cluster( const Mat& descriptors ) const = 0;
protected:
...
};
向训练集中增加特征描述子.
Parameters: |
|
---|
训练集可以用 clustermethod 聚类来构造视觉词典。
返回训练集中的特征描述子.
返回训练集中所有存储的特征描述子的数量.
根据训练集进行聚类.
Parameters: |
|
---|
视觉词典包含聚类中信. 因此,这个方法返回的是视觉词典. 在输入为空的条件下, 存储在训练集中的特征描述子被用来聚类. 在输入特定的特征描述子矩阵条件下, 输入的特征描述子被用来聚类.
kmeans() -用于训练视觉词典的基类. 采用 视觉词典包 算法实现。
class BOWKMeansTrainer : public BOWTrainer
{
public:
BOWKMeansTrainer( int clusterCount, const TermCriteria& termcrit=TermCriteria(),
int attempts=3, int flags=KMEANS_PP_CENTERS );
virtual ~BOWKMeansTrainer(){}
// Returns trained vocabulary (i.e. cluster centers).
virtual Mat cluster() const;
virtual Mat cluster( const Mat& descriptors ) const;
protected:
...
};
构造函数.
See kmeans() function parameters.
基于 视觉词典包 算法来计算一个图像的特征描述子的类. 算法步骤如下:
- 给定一幅图像及其图像特征检测子(关键点)集,计算特征描述子.
- 给定每一个图像特征检测子对应的特征描述子,从视觉词典中寻找最近的词.
- 计算视觉词典包图像特征描述子.该结果为一个归一化后的直方图.直方图向量中第``i``个 值是视觉词典中的第``i``个词在给定图像中的频率.
这个类的描述如下:
class BOWImgDescriptorExtractor
{
public:
BOWImgDescriptorExtractor( const Ptr<DescriptorExtractor>& dextractor,
const Ptr<DescriptorMatcher>& dmatcher );
virtual ~BOWImgDescriptorExtractor(){}
void setVocabulary( const Mat& vocabulary );
const Mat& getVocabulary() const;
void compute( const Mat& image, vector<KeyPoint>& keypoints,
Mat& imgDescriptor,
vector<vector<int> >* pointIdxsOfClusters=0,
Mat* descriptors=0 );
int descriptorSize() const;
int descriptorType() const;
protected:
...
};
构造函数.
:param dextractor:给定一幅图像及其图像特征检测子(关键点)集,计算对应的特征描述子.
Parameters: |
|
---|
设置一个视觉词典.
Parameters: |
|
---|
返回视觉词典集.
用视觉词典计算图像特征描述子.
Parameters: |
|
---|
如果字典已经生成,返回图像特征描述子矩阵的尺寸. 否则,返回0.
返回图像特征描述子类型.
bittnt@ OpenCV中文网站 <kylezheng04@gmail.com>