2

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

Mat descriptors1;
Mat descriptors2; 

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

我曾尝试使用 bitwise_xor() 函数,但后来我没有一种有效的方法来进行位计数。有没有计算两个数组之间汉明距离的函数?

我注意到我对 OpenCV 还很陌生,但我很感激任何帮助。谢谢

4

1 回答 1

8

您可以为此使用 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.
于 2014-10-12T17:53:17.263 回答