我正在尝试计算两个已计算的描述符之间的距离(欧几里德或汉明)。问题是我不想使用匹配器,我只想计算两个描述符之间的距离。 我使用的是 OpenCV 2.4.9,我的描述符存储在 Mat 类型中:
Mat descriptors1;
Mat descriptors2;
现在我只想计算描述符 1 的第 1 行和描述符 2 的第 1 行之间的距离(最好是汉明距离,因为我使用的是二进制描述符)。
我曾尝试使用 bitwise_xor() 函数,但我没有找到一种有效的位计数方法。有没有函数可以计算两个数组之间的汉明距离?
我注意到我对 OpenCV 还很陌生,但我很感激任何帮助。谢谢
最佳答案
你可以使用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.
关于c++ - 计算两个描述符之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26326252/