2016-12-15 18 views
-1

Я не уверен, что это подпадает под критерии надлежащего вопроса, но все же я хотел бы дать ему шанс.Анализ изображения: sift/harris/affine/RANSAC

Я ищу библиотеку или функцию, которая принимает два дескриптора SIFT в виде файла (или матрицы) из [number_of_keypoints] [feature_0 ... feature_127] - что означает 128 функций на файл и позволяет сравнивать изображения (Я использую harris-affine alg., Чтобы извлечь их: http://www.robots.ox.ac.uk/~vgg/research/affine/det_eval_files/extract_features2.tar.gz).

Меня интересует метод, который позволит мне найти ближайших соседей, которые будут принимать количество ключевых точек в окрестности и коэффициент успеха.

E.g. Допустим, у меня есть два файла с ключевыми точками (описанный дескриптором SIFT) (image_1.sift, image_2.sift). Я хотел бы метод, чтобы принять: количество ключевых точек в окрестности, отношение матч, где коэффициент соответствия означает в псевдокоде:

For each keypoint in image_1 
Pick 50 nearest neighbours from image_1 -> List<KeyPoints> neighbours_1 
    For each keypoint in image_2 
    Pick 50 nearest neighbours from image_2 -> List<KeyPoints> neighbours_2 
int numberOfMatches = 0; 
foreach(neighbour in neighbours_1) 
{ 
    if(neighbour == neighbours_2.Find(neighbour)) 
     numberOfMatches++; 
} 

Соотношение количества совпадений к числу ключевых точек приняты во внимание. Например FindMutualKeypoints (image_1, image_2, 50, 0.7)

Это может быть реализация C#, java, python или matlab. Я не очень много отношусь к анализу изображений на регулярной основе, и прежде чем я начну писать свою собственную реализацию, я предположил, что, возможно, уже есть один. У меня возникла проблема с поиском правильных терминов на английском языке из перевода с моего родного языка (похоже, что условия совершенно разные), что, вероятно, является причиной, почему я еще не смог ее найти.

ответ

0

Я думаю, что openCV - это путь.

Вот пример: link Он использует дескрипторы SURF, но вы также можете использовать SIFT.

Затем вы вызываете контроллер FLANN, который также дает вам информацию о качестве матчей.