OpenCV перспективаПреобразование правильной ширины и высоты цели? - PullRequest
0 голосов
/ 20 декабря 2011

В настоящее время я работаю с OpenCV и его функциями трансформации перспективы. Я хотел бы найти способ точно определить целевой прямоугольник на основе имеющихся у меня данных (исходного изображения). Я уже нашел эту тему: https://stackoverflow.com/questions/7199116/perspective-transform-how-to-find-a-target-width-and-height В нем говорится, что невозможно правильно определить правильное соотношение сторон для данных, содержащихся в источнике, но существует ли хотя бы хороший алгоритм для получения хорошей оценки?

1 Ответ

1 голос
/ 20 декабря 2011

Нет, нет способа сделать это из только одного изображения.Представьте, что вы делали снимок листа бумаги формата А4, лежащего на столе, только вы смотрели на него почти горизонтально.Если бы вы использовали соотношение сторон изображения, вы бы получили действительно длинный и тонкий прямоугольник.

Однако, если вы знаете положение камеры относительно цели (т. Е. Матрицы вращения) и внутренние параметры камеры, вы можете получить соотношение сторон.

Взгляните на эту статью (на самом деле это действительно интересно, хотя английский не самый лучший): уравнение (20) является ключевым.Кроме того, посмотрите этот пост , в котором кто-то реализовал этот подход.

Если вы не знаете ориентацию камеры, тогда лучше всего выбрать некое соотношение сторон, котороепо крайней мере приблизительный.Если у вас есть какая-либо другая информация о прямоугольнике, используйте ее (например, если я всегда фотографировал листы бумаги A [0,1,2, ...], они имеют известное фиксированное соотношение сторон).

удачи!

...