Opencv - получение координат пикселей из сопоставления объектов - PullRequest
9 голосов
/ 08 декабря 2011

Кто-нибудь может мне помочь? Я хочу получить координаты x и y лучших пикселей, выбранных сопоставителем объектов в предоставленном коде, используя c ++ с opencv.

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

Осматривался, но ничего не мог заставить работать.

Любая помощь очень ценится!

1 Ответ

13 голосов
/ 08 декабря 2011

Класс 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...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...