我在 VS2010 中使用 OpenCV C++ 进行人脸识别应用程序。为此,我使用了 SURF、BruteForceMatcher。
BFMatcher matcher;
vector< DMatch > matches;
//match: execute the matcher!
matcher.match(descriptors1,descriptors2, matches);
我想知道当我调用这个方法时到底发生了什么。我的手势是“匹配”向量将填充匹配的关键点。
和
无论如何我可以使用这个“匹配”向量来找到好的匹配吗?
目前,我正在做这样的事情,以获得最小距离和最大距离:
for( int i = 0; i < descriptors1.rows; i++ )
{
double dist = matches[i].distance;
if( dist < min_dist ) min_dist = dist;
if( dist > max_dist ) max_dist = dist;
}
如果我的上述方法是正确的,我该如何使用最小距离和最大距离来检查图像是否匹配。
谢谢。
如果有人能为我找到这个,我将不胜感激。谢谢。