我检测到了关键点并提取了这些功能。
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。
提前致谢。
答案 0 :(得分:0)
描述符的类型对应于descriptors.type()
(CV_8U
,CV_32F
等。)
描述符类型与描述符的性质有关。例如,SIFT和SURF的类型将为CV_32F
,而ORB的类型将为CV_8U
,因为它是二进制描述符。
它还与用于匹配描述符(descriptor_extractor->defaultNorm()
):NORM_L2
及其为真实描述符和NORM_HAMMING
派生的规范类型及其为二进制描述符派生的规范类型密切相关。