Класс 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...
}