OpenCV锤击匹配之间的距离距离
OpenCV hamming distance between FLANN matches
在使用弗兰恩匹配器而无需手动计算时,是否有一种方法可以在两个匹配的描述符之间获得锤击距离?(即,通过匹配的描述符循环,将每个元素进行X键,然后计数)。
我正在匹配Orb像SO这样计算的描述符:
FlannBasedMatcher flannMatcher;
flannMatcher.match(des1, des2, matches);
如果我检查距离:
cout << matches.at(0).distance;
我得到了norm_l2距离,但是我的应用需要锤击距离。
上下文:
我要这样做的原因是,我正在使用ORB的训练图像集生成火车描述符,使用蛮力匹配器查找匹配项,然后根据锤子距离过滤差的匹配。
我想使用弗兰纳匹配器将网络摄像头流上的描述符匹配到这些火车描述符(并显示哪些训练图像最与当前帧匹配),但是由于弗兰恩匹配器似乎没有给出锤击距离我在滤除差的比赛时陷入困境,在选择最匹配的火车图像时,我会遇到很多错误。
在OpenCV的教程中,它描述了如何为SIFT和ORB创建基于Flann的匹配器(这是Orb)
使用Orb时,您可以通过以下内容。根据文档,建议使用评论的值,但在某些情况下没有提供所需的结果。其他值正常。:
FLANN_INDEX_LSH = 6
index_params= dict(algorithm = FLANN_INDEX_LSH,
table_number = 6, # 12
key_size = 12, # 20
multi_probe_level = 1) #2
https://docs.opencv.org/3.4/dc/dc3/tutorial_py_matcher.html
尝试使用Flann :: lshindexparams作为距离类型。这确实可以进行局部敏感的哈希(靠近锤距)
FlannBasedMatcher matcher2(new flann::LshIndexParams(20,10,2));
另请参见此处的讨论
相关文章:
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 计算所有对之间的曼哈顿距离
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 两个有符号数字之间的距离
- 计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 查找彼此之间具有不同最小距离的随机数
- 相同字符之间的最小距离
- 如何排列二进制字符串以最小化它们之间的距离
- 堆和堆栈之间的距离
- 树节点之间的最大距离中的运行时错误
- 最接近的字符串:在字符串阵列中找到2个字符串之间的最小距离
- 尝试查找数组中点之间的最小距离时的随机垃圾输出
- c++ 从大型数组中读取 3D 坐标并计算它们之间的距离
- 在 OpenCV 中计算 SURF 功能之间的距离
- 计算机如何分配两个变量,我们如何计算两个变量之间的距离?
- 是否有C 功能来计算两个索引之间的距离
- C++:快速/并行计算两个"std::vector<double>"向量之间的L1距离
- 2 点分配之间的 C++ 距离
- 使用指针计算三角形各点之间的距离