Я хочу иметь возможность выбрать произвольный пиксель на изображении и деформировать изображение, чтобы создать синтетический вид изображения, такой что:
Камера выглядит какнепосредственно в выбранном пикселе вдоль главной оси (то есть ортогонально плоскости датчика изображения).Выбранный пиксель теперь является «главной точкой» изображения (http://ksimek.github.io/2013/08/13/intrinsic/).
). Перспектива изображения преобразуется, предполагая только вращение неподвижной камеры вокруг своей фокусной точки. Преобразование основано нана вращении между старой главной осью и новой "синтетической" главной осью.
Приложение предназначено для увеличения области интереса в увеличенном изображении - и для создания синтетическойтаким образом, выглядит так, как будто камера смотрела прямо на камеру.
Изображение было снято с помощью камеры с калиброванным объективом (т. е. объектив камеры был откалиброван с помощью opencv, и, следовательно, внутренняя матрица камеры K известнаПредположим, что в изображении / объективе нет искажений.
Поскольку мы знаем фокусное расстояние камеры в пикселях от матрицы камеры и знаем разницу (в пикселях) между исходным и синтетическим принципаломточки, кажется, есть достаточно информации, чтобы вычислить преобразование гомографии для генерациисинтетическое изображение.
Однако я не могу найти opencv или другую функцию python, которая делает это.Я полагаю, что я могу рассчитать углы Эйлера вращения и построить гомографию из внутренней матрицы камеры и матрицы вращения.Я не понимаю, как это сделать, и мне интересно, есть ли более элегантный подход.
Может кто-нибудь дать руководство о том, как использовать opencv / python для изменения основной точки изображения с использованием деформации перспективы