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