Нет, нет способа сделать это из только одного изображения.Представьте, что вы делали снимок листа бумаги формата А4, лежащего на столе, только вы смотрели на него почти горизонтально.Если бы вы использовали соотношение сторон изображения, вы бы получили действительно длинный и тонкий прямоугольник.
Однако, если вы знаете положение камеры относительно цели (т. Е. Матрицы вращения) и внутренние параметры камеры, вы можете получить соотношение сторон.
Взгляните на эту статью (на самом деле это действительно интересно, хотя английский не самый лучший): уравнение (20) является ключевым.Кроме того, посмотрите этот пост , в котором кто-то реализовал этот подход.
Если вы не знаете ориентацию камеры, тогда лучше всего выбрать некое соотношение сторон, котороепо крайней мере приблизительный.Если у вас есть какая-либо другая информация о прямоугольнике, используйте ее (например, если я всегда фотографировал листы бумаги A [0,1,2, ...], они имеют известное фиксированное соотношение сторон).
удачи!