У меня есть два плоских изображения A и B. Я рассчитал гомографию между этими двумя изображениями, используя характерные точки, мой вопрос в том, если и A, и B увеличиваются до двойного размера, скажем, A' и B'. Как будет омография? Спасибо.
Как изменить гомографию с масштабом изображения?
Ответы (4)
Гомография не меняется. Это будет то же самое, пока оба изображения претерпели одинаковое линейное масштабирование.
Гомография — это отображение двух двумерных плоскостей в трехмерном пространстве. Он совмещается при вращении и перемещении с матрицей камеры. Если положение камеры относительно объекта не изменилось, то гомография, рассчитанная на основе сопоставления точек в плоскости объекта с эквивалентными точками в плоскости изображения, будет одинаковой (при условии отсутствия шума) независимо от выбранных точек.
Два ответа неверны! Прости!
Правильный ответ с доказательством:
Я думаю, вы можете изменить гомографию для правильного масштаба. Предположим, что соответствия обозначаются с помощью x и y, а гомография отображает x в y. Если рассматривать масштабированные точки
мы можем попытаться вывести s из преобразования, включающего матрицу гомографии, следующим образом:
Где заглавная буква pi (Π) обозначает перспективное преобразование (простое деление компонентов x и y трехмерного вектора на его компонент z). При отмене s у нас будет уравнение, необходимое для применения гомографии в другом масштабе. Здесь H_s можно прочитать из предыдущего уравнения как:
Если вы вычисляете гомографию в масштабе, отличном от вашего «шкала приложения» (например, визуализация), вы должны просто вычислить H_s, где s — относительный коэффициент от нового масштаб (обозначается простым числом) к старому масштабу. Например, если визуализация в два раза больше вычислений, выберите s = 0,5.
Хм .. Я могу ошибаться, но я думаю, что оба ответа выше неверны.
См. https://en.wikipedia.org/wiki/Affine_transformation и Что означают элементы в матрице гомографии?
Как объясняет Википедия, масштабный коэффициент в матрице гомографии H равен
ScaleA = H[row = 0, column = 0] and ScaleB = H[row = 1, column = 1]
Перевод (влево, вправо, вперед, назад) будет
H[row = 0, column = 2] and H[row = 1, column = 2]
Остальные элементы гомографии представляют собой вращательную и сдвиговую составляющие.