Чтобы полностью определить трехмерные данные сцены из заданного изображения, вам необходимо знать параметры перспективной проекции, которые сформировали ваше изображение.Это:
Подробно: Фокусное расстояние можно получить из угла обзора по следующей формуле: fx = imageWidth / (2 * tan (alphaX)),и аналогично для другого измерения.Если у вас нет ни диафрагмы, ни диафрагмы, вы не сможете восстановить свое 3D-изображение.
Другой способ извлечь их - откалибровать камеру.См. http://opencv.itseez.com/modules/calib3d/doc/calib3d.html,, но, похоже, вы не можете его использовать (вы сказали, что у вас нет доступа к камере.)
Точка схода (VP) используется для определения углов, на которые была ориентирована камера.,Таким образом, разница между центром изображения и VP дает вам информацию о вращении:
yaw = ((camera.center.x (пикселей) - VP.x) /image.x) * апертура.
высота = аналогично.
Угол крена не может быть извлечен из VP, но из линии горизонта.
Последние параметры, которые вам нужны, - это переводы.В зависимости от приложения вы можете установить их все 0 или рассматривать только высоту как актуальную.Ни одно из них обычно не может быть восстановлено с изображения.
Теперь, имея все эти данные, вы можете посмотреть здесь Виртуальная камера OpenCV вращается / переводится с высоты птичьего полета
чтобы увидеть, как все эти меры влияют на вашу коррекцию перспективы.