МАТЛАБ: Как найти изображение линии на бесконечности, соответствующей плоскости? - PullRequest
1 голос
/ 11 января 2010

На полу изображение двух отдельных бумаг.

Как найти изображение линии на бесконечности, соответствующей плоскости пола?

См. Изображение по адресу: (больше)

pic

Кто-нибудь имеет представление о том, как начать с MATLAB?

Спасибо,

1 Ответ

4 голосов
/ 11 января 2010

Я не буду вдаваться в конкретные биты, связанные с Matlab, но расскажу об алгоритме, который я бы использовал.

Учитывая только один лист бумаги, алгоритм выглядит примерно так.

  1. Найдите углы бумаги
  2. Выберите один набор параллельных ребер и найдите их пересечение на изображении, назовите эту точку P1
  3. Найдите точку пересечения другой пары параллельных ребер. Назовите это P2.
  4. Ваша линия горизонта (или линия на бесконечности) - это линия, соединяющая P1 и P2 (простирающаяся за ними)

Однако я не уверен, насколько это будет устойчиво к

  1. Артефакты обработки изображений
  2. Не совсем прямоугольная бумага.
  3. Числовые вопросы.

Вы должны быть в состоянии использовать обе части, чтобы получить улучшенное приближение к решению. Например, вы можете рассчитать P1 и P2 для обеих фигур и найти линию наилучшего соответствия через 4 точки.

Надеюсь, это даст вам некоторые идеи.

...