计算两个描述符之间的距离

时间:2014-10-12 14:36:06

标签: c++ opencv euclidean-distance hamming-distance feature-descriptor

我试图计算已计算的两个描述符之间的距离(欧几里德或汉明)。问题是我不想使用匹配器,我只想计算两个描述符之间的距离。 我使用的是OpenCV 2.4.9,并且我的矿井描述符存储在Mat类型中:

Mat descriptors1;
Mat descriptors2; 

现在我只想计算描述符1的row1和descriptors2的row1之间的距离(最好是使用二进制描述符的汉明距离)。(例如)。

我试过使用bitwise_xor()函数,但后来我没有一个有效的方法来做bitcount。没有函数来计算两个数组之间的汉明距离?

我注意到我对OpenCV相当新,但我感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:6)

你可以使用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.