Восстановление соотношения сторон прямоугольных объектов на изображениях - PullRequest
4 голосов
/ 09 января 2012

Я работаю над небольшим проектом, который "сканирует" листы бумаги с помощью камеры (особенно камеры iPhone).

Рабочий процесс:

Позволяет пользователям делать снимки листовпока я буду определять углы / контур, чтобы я знал 4 угловые точки исходного листа бумаги на фотографии.После этого можно легко изменить перспективное преобразование камеры, чтобы получить «плоское» изображение сфотографированного листа бумаги.

Однако мой вопрос: как мне сохранить или даже сохранитьрассчитать правильное (оригинальное) соотношение сторон?

Image of UI with detected corners of sheet of paper (can't post images, sorry)

Как вы можете видеть выше, у меня есть координаты угловых точек, и я также знаю, как построить матрицу для отображения вершинылевый угол до точки (0,0), верхний правый угол (ширина, 0), нижний правый угол (ширина, высота) и нижний левый угол (0, высота).

Вопрос теперь: Как получить правильное соотношение сторон ширины / высоты, которое изначально имел лист бумаги.Я почти уверен, что могу понять это, используя углы для определения трансформации перспективы, но я застрял в поиске правильной формулы.У меня также есть предчувствие, что мне также понадобится фокусное расстояние камеры, но было бы замечательно не нуждаться в этом.

Любые идеи будут оценены.

1 Ответ

0 голосов
/ 10 сентября 2013

Эта статья http://research.microsoft.com/en-us/um/people/zhang/papers/tr03-39.pdf

описывает процесс.

Я провел несколько экспериментов, и хотя результаты для «синтетических» изображений были хорошими, с реальными изображениями (или когда я добавил некоторый шум к «обнаруженным» углам синтетического изображения) результат был нестабильным - соотношение сторон значительно варьировалось.

...