最小值和最大值对SURF来说意味着什么,弗兰马赫



我正在使用Opencv C++作为人脸识别应用程序。为此,我使用SURF作为描述符,使用FlannMatcher来匹配点。我的代码如下,

FlannBasedMatcher matcher;  
std::vector< DMatch > matches;  
matcher.match( descriptors_1, descriptors_2, matches );
double max_dist = 0; double min_dist = 100;
for( int i = 0; i < descriptors_1.rows; i++ )
{ 
     double dist = matches[i].distance; 
     if( dist < min_dist ) min_dist = dist;
     if( dist > max_dist ) max_dist = dist;
}

这里我们找到min_distmax_dist来检查两个面之间是否匹配。但是我不明白min_distmax_dist是什么意思。

这到底意味着什么?为什么我们需要为单个描述符找到min_distmax_dist

如您所知,SIFT描述符是高维空间中的向量,即128。当你在图像上运行它来寻找兴趣点时,它会找到一些点作为兴趣点,并将它们的描述符作为向量来描述高维空间中的这个点。

第一个图像中的这些点中的每一个,比如A,在另一个图像中应该有一个对应的点,比如B!这意味着,那些距离最小的人最有可能是通讯员并非所有人。其中一些可能是异常值,我们预计在其检测到的对应关系中具有较高的距离值。这使得我们在代码中使用max_dsist。在某些类型的上下文中,您可能不希望所有最佳匹配,因为对应点的数量可能相对较高,或者。。。。因此,我们定义了距离的下界,我们用min_dist这样做。

我希望这能给你真知灼见!

相关内容

  • 没有找到相关文章

最新更新