我正在尝试提取不同的点描述符(SIFT、SURF、ORB、BRIEF、...)来构建视觉词袋。问题似乎是我使用的图像非常小:12x60px。使用密集提取器我可以获得一些关键点,但是在提取描述符时没有提取数据。
这是代码:
vector<KeyPoint> points;
Mat descriptor; // descriptor of the current image
Ptr<DescriptorExtractor> extractor = DescriptorExtractor::create("BRIEF");
Ptr<FeatureDetector> detector(new DenseFeatureDetector(1.f,1,0.1f,6,0,true,false));
image = imread(filename, 0);
roi = Mat(image,Rect(0,0,12,60));
detector->detect(roi,points);
extractor->compute(roi,points,descriptor);
cout << descriptor << endl;
结果是 [](带有 Brief 和 ORB)和 SegFault(带有 SURF 和 SIFT)。有没有人知道如何从 OpenCV 上的小图像中密集提取点描述符?谢谢你的帮助。