1

Я пытаюсь вычислить расстояние (евклидовое или hamming) между двумя уже описанными дескрипторами. Проблема в том, что я не хочу использовать помощник, я просто хочу рассчитать расстояние между двумя дескрипторами. Я использую OpenCV 2.4.9 и у меня есть мое ДЕСКРИПТОРОВ хранится в виде Mat:Рассчитать расстояние между двумя дескрипторами

Mat descriptors1; 
Mat descriptors2; 

и теперь я просто хочу, чтобы вычислить расстояние (предпочтительно расстояние Хэмминга, поскольку я использую бинарные дескрипторы) между строка1 дескрипторов1 и строка1 дескрипторов2 (например).

Я попытался использовать функцию bitwise_xor(), но тогда у меня не было эффективного способа выполнить битконтинг. Не существует функции для вычисления расстояния от помех между двумя массивами?

Я замечаю, что я довольно новичок в OpenCV, но я ценю любую помощь. Спасибо

ответ

5

Вы можете использовать функцию opencv norm для этого.

Mat descriptors1; 
Mat descriptors2; 

double dist_l2 = norm(descriptors1,descriptors2,NORM_L2);  // l2 for surf,sift 
double dist_ham = norm(descriptors1,descriptors2,NORM_HAMMING); // for ORB,BRIEF,etc.