在OpenCV中,DescriptorExtractor类的descriptorType()返回什么

In OpenCV, what does descriptorType() of DescriptorExtractor class return?

本文关键字:返回 什么 descriptorType 类的 OpenCV DescriptorExtractor      更新时间:2023-10-16

我检测到关键点并提取了特征。

vector<vector<KeyPoint> > key_points;
SiftFeatureDetector feature_detector;
feature_detector.detect( db_images_gray, key_points);
Ptr<DescriptorExtractor> descriptor_extractor = DescriptorExtractor::create("SURF");
descriptor_extractor->compute( db_images_gray, key_points,  descriptors);
cout << "Size: " << descriptor_extractor->descriptorSize() << " Type: " << descriptor_extractor->descriptorType() << endl;

结果,上述cout给出了"Size:64 Type:5">。我知道尺寸的含义。我想知道5代表描述符提取器的类型的含义。我搜索了它,但找不到任何与descriptorType()有关的内容。

PS:我知道使用SIFT检测器和SURF提取器。使用OpenCV 2.4.10。

提前谢谢。

描述符的类型对应于descriptors.type()(CV_8UCV_32F等)。

描述符类型与描述符的性质有关。例如,SIFT和SURF的类型将是CV_32F,而ORB的类型将为CV_8U,因为它是二进制描述符。

它还与用于匹配描述符(descriptor_extractor->defaultNorm())的范数类型密切相关:NORM_L2及其对实描述符的导出和NORM_HAMMING及其对二进制描述符的导出。