Opencv - 从特征匹配中获取像素坐标

时间:2011-12-08 19:39:37

标签: c++ image-processing opencv

任何人都可以帮助我吗?我想获得功能匹配器在提供的代码中选择的最佳像素的x和y坐标,使用带有opencv的c ++。

http://opencv.itseez.com/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html#feature-flann-matcher

一直在四处寻找,但却找不到任何工作。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:13)

DMatch类为您提供两个匹配的KeyPoints(火车和查询)之间的距离。因此,检测到的最佳对应具有最小距离。本教程抓取所有小于2 *(最小对距离)的匹配并认为最佳匹配。

所以,获得最佳匹配的(x,y)坐标。您应该使用good_matchesDMatch个对象列表)从两个不同的KeyPoint向量(keypoints_1keypoints_2中查找相应的索引)。类似的东西:

for(size_t i = 0; i < good_matches.size(); i++)
{
    Point2f point1 = keypoints_1[good_matches[i].queryIdx].pt;
    Point2f point2 = keypoints_2[good_matches[i].trainIdx].pt;
    // do something with the best points...
}