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

时间:2016-06-14 11:22:03

标签: c++ opencv feature-detection feature-extraction

我检测到了关键点并提取了这些功能。

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给出&#34;尺寸:64类型:5&#34; 结果。我知道大小的含义。我想知道5的含义代表描述符提取器的类型。我搜索它但无法找到与decriptorType()相关的任何内容。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

它还与用于匹配描述符(descriptor_extractor->defaultNorm()):NORM_L2及其为真实描述符和NORM_HAMMING派生的规范类型及其为二进制描述符派生的规范类型密切相关。