1

我正在计算已经计算出的两个描述符之间的距离(欧几里得或汉明)。问题是我不想使用匹配器,我只是想计算两个描述符之间的距离。 我使用的OpenCV 2.4.9我有我的描述符存储在垫类型:计算两个描述符之间的距离

Mat descriptors1; 
Mat descriptors2; 

和现在我只想(因为我使用二进制描述符优选的汉明距离)来计算的距离之间描述符1的第1行和描述符2的第1行(例如)。

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

我注意到我对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.