“最小距离”和“最大距离”对冲浪来说是什么意思,法兰马彻 我使用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; } FlannBasedMatcher匹配器; 标准::向量匹配; matcher.match(描述符_1,描述符_2,matches); 双最大距离=0;双最小距离=100; 对于(int i=0;i
这里我们找到了“最小距离”和“最大距离”对冲浪来说是什么意思,法兰马彻 我使用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; } FlannBasedMatcher匹配器; 标准::向量匹配; matcher.match(描述符_1,描述符_2,matches); 双最大距离=0;双最小距离=100; 对于(int i=0;i,c++,opencv,image-processing,surf,C++,Opencv,Image Processing,Surf,这里我们找到了min\u dist和max\u dist来检查两张脸之间是否匹配。但是我不明白这min\u dist和max\u dist是什么意思 这到底是什么意思? 为什么我们需要为单个描述符同时找到min\u dist和max\u dist。当您在图像上运行它以查找兴趣点时,它将查找一些作为兴趣点的点,并将它们的描述符作为向量,用于在高维空间中描述每个点 第一幅图像中的每个点,比如说A,在另一幅图像中,比如说B,都应该有一个对应的点!这意味着,那些距离最小的人最有可能是对应者,但并非所有人
min\u dist
和max\u dist
来检查两张脸之间是否匹配。但是我不明白这min\u dist
和max\u dist
是什么意思
这到底是什么意思?
为什么我们需要为单个描述符同时找到
min\u dist
和max\u dist
。当您在图像上运行它以查找兴趣点时,它将查找一些作为兴趣点的点,并将它们的描述符作为向量,用于在高维空间中描述每个点
第一幅图像中的每个点,比如说A
,在另一幅图像中,比如说B
,都应该有一个对应的点!这意味着,那些距离最小的人最有可能是对应者,但并非所有人都是对应者。其中一些可能是异常值,我们希望在检测到的对应关系中具有较高的距离值。这使得我们在代码中使用max\dsist
。在某些类型的上下文中,您可能不需要所有最佳匹配,因为对应点的数量可能相对较高,或者。。。。所以我们定义了一个距离的下限,我们用min\u dist
来定义
我希望这能给你启发 这是众所周知的坏例子。如果没有“最大距离”和“最小距离”,有一种更好的方法来区分好匹配和坏匹配。非常感谢您的快速回复,它真的很有用