Карта глубины из стереопары

Вопросы создания 3D изображений методом "карты глубины", работа с программой StereoTracer

Модераторы: Vlad Sidash, Ledmaster, Anastasiya

AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Карта глубины из стереопары

Сообщение AnDrian » Вс сен 19, 2010 4:44 am

Допустим, Вы имеете возможность приобрести две фотокамеры и сделать из них спарку для съемки стереопар.
Но для получения хороших результатов, двух кадров явно недостаточно.
Давайте посмотрим, как на практике получают глубину из стереопары.
Изображение
Для двух камер с параллельными осями объективов любой объект в кадре тем сильнее "смещается" на левом и правом снимке пары, чем ближе к камерам он расположен.
На рисунке видно, что на месте персонажа в последних кадрах - темное пятно. Это результат вычитания уровня яркостей левого и правого кадра.

Чтобы понять принцип восстановления глубины, можно сделать следущее:
1. Взять любую стереопару и открыть ее кадры в GIMP или Photoshop как слои.
2. Выровнять стереопару по яркости, контрасту, перекосам и т.п.
3. Преобразовать изображение в градации серого и убрать шумы, "постеризовав" затем, чтобы оставить поменьше уровней яркости. Так проще работать с "математикой" и нагляднее результат.
4. Далее, совместим любой крупный объект на переднем плане, двигая один слой относительно другого.
5. Применив вычитание к слоям, видим, что на месте объекта получилась "дыра", которая легко преобразуется в контур, например.

На практике получить карту высот можно так:
Предварительно выровняв и постеризовав кадры стереопары, сдвигаем один слой (кадр) относительно другого на некоторое количество пикселей.
Затем вычитаем кадры друг из друга.
Результат сохраняем как новый слой.
Снова сдвигаем кадры на то же расстрояние (после вычитания дыры оставлять не надо, двигаем то что было до предыдущего вычитания).
Снова вычитаем, снова сохраняем как новый слой.
В результате нескольких повторов получим стопку слоев, соответствующих разностям сдвигов (параллаксов) для разных расстояний. Чем больше сдвиг, тем ближе к камерам, соответственно.

Эту стопку слоев обрабатываем. Например инвертируем, подчищаем шумы. Получается стопка "силуэтов". Суммируем их между собой и получаем нечто, очень похожее на "карту высот".

Далее, если использовался GIMP, ищем "Фильтры" - "Карта" - "Смещение" и получаем с помощью данного фильтра необходимое количество псевдоракурсов, из которых делаем либо анимированный GIF, например.

Ledmaster
Сообщений: 317
Зарегистрирован: Пн май 05, 2008 11:23 pm

Re: Карта глубины из стереопары

Сообщение Ledmaster » Вс сен 19, 2010 12:33 pm


AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Re: Карта глубины из стереопары

Сообщение AnDrian » Вс сен 19, 2010 3:11 pm


AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Вс сен 19, 2010 4:16 pm

Изображение

AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Вс сен 19, 2010 4:20 pm

Взял исходное изображение
Изображение
Разрезал на слои.
Постеризовал
Размыл "гауссом"
Совместил "мышей"
Режим "Затемнение" на "верхнем слое" и движек "непрозрачность" довершили начатое.

AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Вс сен 19, 2010 4:24 pm

Понимаю, что это "эрзац"-способ, и будет работать не всегда. Однако, такие манипуляции позволяют получать карты высот с градиентами, что при ручном "промывании" маски сделать сложнее.
Артефакты, разумеется, придется подчищать руками, но их не столь много, как видно из данного примера.

AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Re: Карта глубины из стереопары

Сообщение AnDrian » Вс сен 19, 2010 5:21 pm


AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Вс сен 19, 2010 6:02 pm

Готовый плагин для GIMP, делающий карту высот по стереопаре:
http://registry.gimp.org/node/10217

Изображение
Изображение

Ledmaster
Сообщений: 317
Зарегистрирован: Пн май 05, 2008 11:23 pm

Сообщение Ledmaster » Вс сен 19, 2010 7:20 pm


AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Вс сен 19, 2010 7:44 pm


karelkysino
Сообщений: 38
Зарегистрирован: Пн июн 29, 2009 2:24 am

Сообщение karelkysino » Пн сен 20, 2010 2:19 pm


AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Пн сен 20, 2010 7:37 pm


karelkysino
Сообщений: 38
Зарегистрирован: Пн июн 29, 2009 2:24 am

Сообщение karelkysino » Пн сен 20, 2010 10:41 pm


AnDrian
Сообщений: 53
Зарегистрирован: Вс сен 19, 2010 1:34 am

Сообщение AnDrian » Вт сен 21, 2010 3:02 am


Ledmaster
Сообщений: 317
Зарегистрирован: Пн май 05, 2008 11:23 pm

Сообщение Ledmaster » Вт сен 21, 2010 3:49 am



Вернуться в «StereoTracer/3D с помощью карты глубины»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 0 гостей