我将尝试提取不同的点描述符(SIFT、SURF、ORB、BRIEF等),以构建视觉词袋。然而,问题似乎在于我使用的图片非常小:12x60像素。虽然使用密集提取器可以获得一些关键点,但在提取描述符时未从中提取任何数据。
以下是代码:
以下是代码:
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提取的结果是[],而使用SURF和SIFT会出现SegFault错误。 有没有人知道如何在OpenCV上从小图像中密集提取点特征描述符? 感谢您的帮助。