2014-11-13 1 views
0

Я пытаюсь написать функцию для соответствия функциям ORB. Я не использую шаблоны по умолчанию (bfmatcher, flann matcher), потому что я просто хочу использовать специальные функции изображения в изображении с функциями другого изображения.Поиск расстояния для помех между дескрипторами функций ORB

Я видел ORS дескриптор своего двоичного массива.

Мой запрос состоит в том, как совместить 2 функции. Как найти расстояние между двумя дескрипторами?

ORB Дескрипторы:

descriptor1 =[34, 200, 96, 158, 75, 208, 158, 230, 151, 85, 192, 131, 40, 142, 54, 64, 75, 251, 147, 195, 78, 11, 62, 245, 49, 32, 154, 59, 21, 28, 52, 222] 
descriptor2 =[128, 129, 2, 129, 196, 2, 168, 101, 60, 35, 83, 18, 12, 10, 104, 73, 122, 13, 2, 176, 114, 188, 1, 198, 12, 0, 154, 68, 5, 8, 177, 128] 

Спасибо.

ответ

6

ORB дескрипторы всего лишь 32 байт.

брутфорс и Flann matchers сделать немного больше работы, чем просто сравнивающих дескрипторы, но если это все, что вы хотите сейчас, это было бы прямо norm:

Mat descriptor1, descriptor2; 
    double dist = norm(descriptor1, descriptor2, NORM_HAMMING); 
    // NORM_HAMMING2 or even NORM_L1 would make sense, too. 
    // dist is a double, but ofc. you'd only get integer values in this case. 
+0

спасибо за ответ, Могу ли я взять меньше расстояние как более подходящее или любые критерии фурта, чтобы соответствовать? – nayab

+0

Хмм, да, но с зерном соли, поскольку расстояние от помех дает вам очень «узкий» диапазон (64 * 8). – berak

+0

(64 * 8)?, Я получаю 32 8-битных числа и тип мата 0 i, e CV_8U. – nayab