Рассчитать расстояние между двумя дескрипторами

Я пытаюсь вычислить расстояние (евклидово или хемминговое) между двумя уже рассчитанными дескрипторами. Проблема в том, что я не хочу использовать средство сравнения, я просто хочу вычислить расстояние между двумя дескрипторами.
Я использую OpenCV 2.4.9, и мои дескрипторы хранятся в типе Mat:

Mat descriptors1;
Mat descriptors2;

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

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

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

1

Решение

Вы можете использовать OpenCV норма Функция для этого.

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.
5

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


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