NORM_HAMMING2 与 NORM_HAMMING

信息处理 图像处理 计算机视觉 opencv C++
2022-01-26 10:58:45

我正在尝试将 ORB 功能与cv::BFMatcher. ORB 基于二进制描述符,因此必须选择 HAMMING,但我不确定我是否理解NORM_HAMMING2vsNORM_HAMMING和 witch one 之间的区别是正确的选择。

我做了一些测试,但我找不到任何可靠的区别。

1个回答

BFMatcher构造函数文档

NORM_HAMMING应与 ORB、BRISK 和 BRIEFNORM_HAMMING2一起使用,应与ORBwhenWTA_K==34(参见ORB::ORB构造函数说明)一起使用

ORB构造函数文档

WTA_K - [...]其他可能的值是 3 和 4 。[...]这样的输出将占用 2 位,因此它需要一个特殊的汉明距离变体,表示为NORM_HAMMING2(每个 bin 2 位)。

换句话说,正确的选择是与您的ORB配置相匹配的那个(NORM_HAMMINGwhen WTA_K==2, and NORM_HAMMING2when WTA_K==3or WTA_K==4),否则您最终会遇到不正确的规范和相应的较差/不一致的匹配性能。