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

3

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

Mat descriptors1;
Mat descriptors2; 

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

我尝试使用bitwise_xor()函数,但是我并没有有效地完成位数统计的方法。有没有计算两个数组之间汉明距离的函数?

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

1个回答

10

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

范数的选择可能取决于您的描述符如何配置(例如ORB),请参见此答案:https://dsp.stackexchange.com/a/28560/28522。 - scrutari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接