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



我正在尝试编写一个函数来匹配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]

谢谢。

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

蛮力和弗兰匹配器做了更多的工作,而不仅仅是比较描述符,但如果这就是你现在想要的,那将是一个直接的规范:

   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.

最新更新