Использование OpenCV для исправления стереоизображений - PullRequest
1 голос
/ 28 марта 2011

Я намереваюсь создать программу, которая будет снимать стереопары, снятые одной камерой, а затем исправлять и обрезать их так, чтобы при просмотре изображений бок о бок с помощью метода параллельного или перекрестного обзора лучший 3D-эффект будет достигнуто. Левое изображение будет опорным, правое изображение будет изменено для исправлений. Я считаю, OpenCV будет лучшим программным обеспечением для этих целей. Пока я верю, что обработка будет происходить примерно так:

  • Исправить поворот между изображениями.
  • Исправить для смещения оси Y.

Если я это сделаю, я получу неправильные черные рамки над и под правым изображением так:

  • Обрезка обоих изображений до одинаковой высоты для удаления границ.
  • Вычисление стерео-соответствия / несоответствия
  • Вычислить оптимальное расхождение
  • Правильные изображения для оптимального несоответствия

Ладно, это мой взгляд на то, что нужно делать, и порядок, в котором это происходит, я спрашиваю, кажется ли это правильным, есть ли что-то, что я пропустил, что-то в неправильном порядке и т. Д. Также, который конкретные функции OpenCV мне нужно будет использовать для всех необходимых шагов для завершения этого проекта? Или OpenCV не подходит? Большое спасибо.

1 Ответ

1 голос
/ 28 марта 2011

OpenCV отлично подходит для этого.

Существует целая глава в:

enter image description here

И весь пример кода для этого в книге поставляется сРаспределение opencv

edit: Примерно следующие шаги:

  1. Переопределить каждое изображение, чтобы удалить искажения объектива и повернуть / перевести представления в центр изображения.

  2. Обрезать пиксели, которые не отображаются в обоих видах (необязательно)

  3. Найти подходящие объекты в каждом представлении (сопоставление стереоблоков), создать карту диспаратности

  4. Перепроектировать карту диспаратности в 3D-модель

...