我正在尝试将 ORB 功能与cv::BFMatcher
. ORB 基于二进制描述符,因此必须选择 HAMMING,但我不确定我是否理解NORM_HAMMING2
vsNORM_HAMMING
和 witch one 之间的区别是正确的选择。
我做了一些测试,但我找不到任何可靠的区别。
我正在尝试将 ORB 功能与cv::BFMatcher
. ORB 基于二进制描述符,因此必须选择 HAMMING,但我不确定我是否理解NORM_HAMMING2
vsNORM_HAMMING
和 witch one 之间的区别是正确的选择。
我做了一些测试,但我找不到任何可靠的区别。
NORM_HAMMING
应与 ORB、BRISK 和 BRIEFNORM_HAMMING2
一起使用,应与ORB
whenWTA_K==3
或4
(参见ORB::ORB
构造函数说明)一起使用
WTA_K - [...]其他可能的值是 3 和 4 。[...]这样的输出将占用 2 位,因此它需要一个特殊的汉明距离变体,表示为
NORM_HAMMING2
(每个 bin 2 位)。
换句话说,正确的选择是与您的ORB
配置相匹配的那个(NORM_HAMMING
when WTA_K==2
, and NORM_HAMMING2
when WTA_K==3
or WTA_K==4
),否则您最终会遇到不正确的规范和相应的较差/不一致的匹配性能。