Как получить позиции совпадающих точек с помощью дескрипторов Brute-Force Matching / SIFT - PullRequest
0 голосов
/ 15 января 2019

Я попытался сопоставить мои SIFT-ключевые точки с BF-matcher. Я делал это как этот урок https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html

Но если я хочу получить x, y-позиции с печатью (хорошо), это дает мне только что-то вроде DMatch 000001DD9C4E0EB0

Как я могу конвертировать это в позиции?

1 Ответ

0 голосов
/ 16 января 2019

Поскольку вы не указали код, я отвечаю на ваш вопрос, основываясь на коде в руководстве.По сути, ключевые точки - это точки, обнаруженные алгоритмом SIFT с поворотом, масштабом и положением x, y, а дескрипторы - это просто векторы объектов, используемые для их сопоставления.В переменной совпадений у вас есть набор совпадений между дескрипторами (DMatch).Ключевые точки расположены в kp1 и kp2.Чтобы найти две точки (p1, p2), которые соответствуют, используйте код, подобный этому:

for match in matches:
  p1 = kp1[match.queryIdx].pt
  p2 = kp2[match.trainIdx].pt
...