минимизация ошибки параллакса путем выбора точек - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть 2 изображения одной и той же сцены, но с небольшой разницей. Это связано с тем, что я сделал снимок с помощью 2 разных устройств, и одно не совсем верно. Это создает небольшую проблему параллакса где-то на фотографии Это действительно незначительно, когда вы сравниваете 2 фотографии, но достаточно тревожно для того, что я хочу сделать с этими изображениями.

Мой вопрос: каков наилучший алгоритм для минимизации создаваемой ошибки?

То, что я думал, было: выберите X точек на первом изображении, выберите их точки соответствия на другом изображении, затем создайте функцию, которая проецирует первые точки на другое, а затем примените эту функцию ко всем точкам в сцене. Что-то вроде того : enter image description here (Красная точка - это выбранные точки, а другие цвета - это деформации каждой точки на сцене (возможно, это неправильно, так как я сделал это быстро).

Это был бы хороший способ продолжить? Если да, какой будет хороший алгоритм интерполяции с использованием точек.

Если нет, есть ли другой алгоритм, который я мог бы использовать для минимизации ошибки?

Большое спасибо!

1 Ответ

0 голосов
/ 04 апреля 2019

Да, используя 4 пары точек, вы можете рассчитать матрицу преобразования перспективы, а затем применить это преобразование ко всему изображению.

Библиотека OpenCV для этого случая содержит функцию getPerspectiveTransform (также findHomography).Вы также можете применить warpPerspective для исправления изображения.

Пример

...