Почему Sift Feature Detector не может обнаружить ключевые точки для некоторых изображений?

Я читаю изображения из набора и извлекаю их особенности. Тем не менее, для некоторых изображений (очень мало, около 4 на тысячу), SiftFeatureDetector::detect( image, keypoints) не может обнаружить ключевые точки и возвращает мне пустой набор ключевых точек. Когда я пытался с SurfFeatureDetector::detect( image, keypoints), он обнаруживает ключевые моменты.

Вот код:

    query = imread( it->path().string());

/* Here, I resize the image in proportion so that its longest side will be 400*/

cvtColor( query, query_gray, CV_RGB2GRAY);

SiftFeatureDetector feature_detector;
vector<KeyPoint> query_kp;
feature_detector.detect( query_gray, query_kp);

// check whether KeyPoints are detected
if( !query_kp.size())
{
cerr << "KeyPoints couldn't be detected. Image " << it->path() << " is skipped." << endl;
++cantDetecteds;
waitKey(0);
continue;
}

В чем причина этого? Может кто-нибудь объяснить, пожалуйста?

Благодарю.

РЕДАКТИРОВАТЬ: Surf также не может обнаружить некоторые ключевые точки, около 2 промилле.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]