Я пытаюсь вычислить расстояние (евклидово или хемминговое) между двумя уже рассчитанными дескрипторами. Проблема в том, что я не хочу использовать средство сравнения, я просто хочу вычислить расстояние между двумя дескрипторами.
Я использую OpenCV 2.4.9, и мои дескрипторы хранятся в типе Mat:
Mat descriptors1;
Mat descriptors2;
и теперь я просто хочу вычислить расстояние (предпочтительно расстояние Хемминга, поскольку я использую двоичные дескрипторы) между row1 дескрипторов1 и row1 дескрипторов2 (например).
Я пытался использовать функцию bitwise_xor (), но потом я получил неэффективный способ сделать битовый подсчет. Нет функции для вычисления расстояния Хэмминга между двумя массивами?
Я заметил, что я довольно новичок в OpenCV, но я ценю любую помощь. Спасибо
Вы можете использовать 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.