Я пытаюсь извлечь различные дескрипторы точек (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? Спасибо за вашу помощь.