我在VS2010中使用OpenCV C++进行人脸识别应用程序。为此,我使用了SURF,BruteForceMatcher。如何使用C++使用SURF OpenCV找到最佳匹配?
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;
}
如果我的上述做法是正确的,我怎么能用最小距离和最大距离检查图像是否匹配。
谢谢。
如果有人能为我找到这个,我将不胜感激。 谢谢。
非常感谢J-X320,mada的快速反应。我尝试了knnMatch()方法。它给了我很好的结果。谢谢。 – posha 2013-05-10 17:30:05