BruteForce功能匹配如何计算“距离”值?

时间:2015-03-27 14:49:18

标签: opencv sift brute-force

我写了一个应用程序来检测关键点,计算它们的描述符并在OpenCV中将它们与BruteForce匹配。这就像一个魅力。

但: 如何计算匹配对象中的距离?

例如:我使用SIFT并获得每个关键点具有128个浮点值的描述符向量。 在匹配中,将关键点与例如具有相同矢量化的10个其他描述符进行比较。 现在,我得到了最好的比赛"距离为0.723。

这是一个向量的所有浮点数与另一个向量的每个欧氏距离的平均值吗? 我只想了解如何创建这个值。

1 个答案:

答案 0 :(得分:2)

默认情况下,从Open-CV文档中,BFMatcher使用L2规范。

C++: BFMatcher::BFMatcher(int normType=NORM_L2, bool crossCheck=false )

Parameters: 
normType – One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. 
L1 and L2 norms are preferable choices for SIFT and SURF descriptors ...

请参阅:http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html?highlight=bruteforcematcher#bruteforcematcher

最佳匹配是与所有其他距离相比距离最短的特征向量。