查找ORB特征描述符之间的汉明距离

时间:2014-11-13 00:15:29

标签: opencv computer-vision hamming-distance orb keypoint

我正在尝试编写一个匹配ORB功能的函数。我没有使用默认匹配器(bfmatcher,flann matcher),因为我只想在图像中使用其他图像中的特征匹配特征。

我看到ORS描述符是一个二进制数组。

我的查询是如何匹配2个特征,即如何找到2个描述符之间的汉明距离?

ORB描述符:

descriptor1 =[34, 200, 96, 158, 75, 208, 158, 230, 151, 85, 192, 131, 40, 142, 54, 64, 75, 251, 147, 195, 78, 11, 62, 245, 49, 32, 154, 59, 21, 28, 52, 222]
descriptor2 =[128, 129, 2, 129, 196, 2, 168, 101, 60, 35, 83, 18, 12, 10, 104, 73, 122, 13, 2, 176, 114, 188, 1, 198, 12, 0, 154, 68, 5, 8, 177, 128]

感谢。

1 个答案:

答案 0 :(得分:6)

ORB描述符只是32字节uchar Mat的。

除了比较描述符之外,暴力和flann匹配器做了更多的工作,但如果这就是你现在想要的全部,那将是一个直的norm

   Mat descriptor1, descriptor2;
   double dist = norm( descriptor1, descriptor2, NORM_HAMMING);
   // NORM_HAMMING2 or even NORM_L1 would make sense, too.
   // dist is a double, but ofc. you'd only get integer values in this case.