2014-09-05 4 views
3

Я использую функцию OpenHV findHomography (с RANSAC) в Python, чтобы найти преобразование между двумя наборами точек.Вывод cv2.findHomography в OpenCV (Python)

Глядя на documentation, выход представляет собой маску и матрицу преобразования.

В документации не ясно, что представляет собой маска, и как структурирована матрица.

Является ли 1 в маске вывода точкой, которая соответствует найденному преобразованию или точке, которая была проигнорирована? И не могли бы вы объяснить состав матрицы преобразования 3x3?

Спасибо заранее и извините, если я пропустил документацию, которая объясняет это.

+0

Не забудьте нажать на пустой галочку рядом с сообщением. Если вам понравился ответ. – Jay

+0

http://stackoverflow.com/questions/13369069/findhomography-3x3-matrix-how-to-get-rotation-part-out-of-it имеет часть ответа. – Akanes

ответ

2

Ну что вам нужно делать с маской? Потому что это поле не требуется, поэтому вам не нужно наносить маску.

Что касается полученной матрицы. Он называется матрицей homography, или H, и представляет собой преобразование одной точки в плоскости изображения в ту же точку в другой плоскости изображения.

X1 = H * X2 

Точка X1 та же точка (X2) в другой плоскости.

Таким образом, матрица H в основном описывает то, как одна точка, скажем, изображение 1 соответствует 1 точке в изображении2.

+0

Thanks Jay - Причина, по которой я хочу видеть вывод в маске и матрице, заключается в том, что у меня есть несколько изображений, с которыми я сравниваю свой образ запроса, и я хочу видеть, что обеспечило наилучшее соответствие. И для матрицы H, которые являются значениями масштаба, вращения и т. Д.? – Akanes

+0

Матрица H - это вращение. Если вы вручную вводите согласованные точки, масштабирование выполняется для вас. Не нужно ничего делать. Просто подключите эту матрицу H к 'cv :: warpedPerspective' и вы получите искаженное изображение1 в кадр image2 – Jay

Смежные вопросы