作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在使用 flann 匹配器时,有没有办法在不手动计算的情况下获取两个匹配描述符之间的汉明距离? (即遍历匹配的描述符,对每个元素进行异或运算,然后计数)。
我正在匹配由 ORB 计算的描述符,如下所示:
FlannBasedMatcher flannMatcher;
flannMatcher.match(des1, des2, matches);
如果我检查距离:
cout << matches.at(0).distance;
我得到了 NORM_L2 距离,但是我的应用程序需要汉明距离。
上下文:
我想这样做的原因是我使用 ORB 从训练图像集中生成训练描述符,使用强力匹配器查找匹配项,然后根据汉明距离过滤不良匹配项。
然后我想使用 flann 匹配器将网络摄像头流上的描述符与这些火车描述符进行匹配(并显示哪些训练图像与当前帧最匹配),但由于 flann 匹配器似乎没有给出汉明距离 在过滤掉不良匹配方面我遇到了困难,在选择最匹配的火车图像时我遇到了很多错误。
最佳答案
在 OpenCV 的教程中,描述了如何为 SIFT 和 ORB 创建基于 flann 的匹配器(这里是 ORB)
While using ORB, you can pass the following. The commented values are recommended as per the docs, but it didn't provide required results in some cases. Other values worked fine.:
FLANN_INDEX_LSH = 6
index_params= dict(algorithm = FLANN_INDEX_LSH,
table_number = 6, # 12
key_size = 12, # 20
multi_probe_level = 1) #2
关于c++ - FLANN 匹配之间的 OpenCV 汉明距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152498/
我是一名优秀的程序员,十分优秀!