任何人都可以帮助我吗?我想获得功能匹配器在提供的代码中选择的最佳像素的x和y坐标,使用带有opencv的c ++。
一直在四处寻找,但却找不到任何工作。
非常感谢任何帮助!
答案 0 :(得分:13)
DMatch类为您提供两个匹配的KeyPoints(火车和查询)之间的距离。因此,检测到的最佳对应具有最小距离。本教程抓取所有小于2 *(最小对距离)的匹配并认为最佳匹配。
所以,获得最佳匹配的(x,y)坐标。您应该使用good_matches
(DMatch
个对象列表)从两个不同的KeyPoint
向量(keypoints_1
和keypoints_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...
}