Ручное создание карты глубины

Как известно, для создания 3D изображения требуется информация о глубине сцены. Если вы работаете со стереоизображением (стереопарой), карту глубины можно создать в специальной программе, например, в Triaxes StereoTracer. Однако, если вы хотите создать 3D изображение из плоской 2D картинки, вам придется нарисовать карту глубины вручную (т.е. добавить информацию о глубине). Для того, чтобы нарисовать карту глубины, вам потребуется редактор растровой графики (Adobe Photoshop, GIMP и т.п) и следующие его функции:

  • инструмент выделения контуров
  • инструмент работы со слоями
  • инструмент градиент

Конечно, вам надо будет немного набить руку в использовании вышеуказанных инструментов, но это совсем не сложно.

1) Загружаем файл в редактор. В данном примере показано использование Adobe Photoshop, но аналогичные действия можно выполнять и в другой программе, например, в бесплатной программе GIMP (пример создания карты глубины в этом редакторе см. ниже).
pic1

2) Сначала выделяем все изображение целиком (Ctrl+A). Затем нажимаем скопировать (Ctrl+C). Потом нажимаем вставить (Ctrl+V). Теперь у нас в окне слои два одинаковых слоя.

pic2

Кликаем правой кнопкой на нижнем слое и жмем удалить слой.
Теперь у нас остался 1 слой. Эти операции делаются для того что бы избавиться от блокировки нижнего слоя.
Для построения карты глубины нужно разбить изображение несколько сегментов. Разбиваем по принципу: если два объекта имеют разную удаленность то их нужно выделить в отдельный слой. Например, на данной картинке можно выделить 6-9 сегментов. Задний фон — 1 слой, ваза — 2-ой слой, каждый лепесток в отдельный слой. В результате получается следующее:

pic3

pic4

Для того выделения объектов потребуется инструмент. Обычно для этой цели есть три инструмента: лассо, многоугольное лассо, магнитное лассо. Для выделения объектов можно использовать любой инструмент из вышеперечисленных.

3) Разбитие на сегменты происходит следующим образом: Сначала выделим объект который хотим поместить в отдельный слой, например отделим вазу с цветами от заднего фона.

pic5

Затем нажимаем копировать (Ctrl+C), удалить (del), вставить (Ctrl+V). Тем самым мы отделили вазу с цветами от фона.

pic6
Далее, таким же образом, выделяем остальные элементы изображения отдельные слои. В результате имеем изображение, разбитое на сегменты.

4)Преобразуем изображение в черно-белое. Изображение -> Режим -> Черно-белый.

5)Теперь каждый слой нужно залить однородным цветом. Цвет заливки каждого слоя будет зависеть от того насколько ближе или дальше должен находиться объект. Например, передний лепесток находится ближе к наблюдателю, чем ваза. А ваза в свою очередь ближе чем фон. Следовательно у передний лепесток должен быть ярче, ближе к белому. У вазы потемнее, примерно светло серый, фон — близко к черному и т.д.

Заливку каждого слоя можно сделать разными способами. Например:

1.Выбираем слой, жмем Изображение -> Регулировки -> Яркость контрастность. Контрастность устанавливаем на минимум (-100), а значение яркости устанавливаем в зависимости от цвета который хотим получить. +100 светлый (белый), -100 темный(черный).
2.Выбираем слой, выбираем инструмент волшебная палочка, кликаем на область, которая не входит в данный слой, тем самым выделяем все кроме объекта, лежащего в этом слое. Жмем Инвертировать выделение (Shift+Ctrl+I). Затем нажимаем заливка (Shift+F5) и в диалоге выбираем цвет которым хотим залить данный регион.

В результате должна получиться примерно такая картинка:

pic7

Чем ближе объект находиться тем более светлым цветом была выполнена заливка.

6) Фон на данном снимке является поверхностью, которая в пространстве распределена неравномерно, области фона находятся на различных расстояниях от наблюдателя, нижняя область — ближе, верхняя — дальше. Поэтому для лучшего результата сделаем градиент фона. Выбираем объект фон. Щелкаем на инструмент градиент и делаем градиент сверху вниз:

pic8
7) И, наконец, делаем сведение слоев и размытие:

1.Для сведения необходимо выполнить: Слой -> Выполнить сведение.
2.Для размытия — Фильтр Размытие -> Размытие гаусса.

pic9
8) Карта глубины готова.

flower_and_depth
Теперь можно исходное изображение и созданную карту глубины загрузить в программу StereoTracer и сгенерировать серию ракурсов.
Полученную после генерации серию можно использовать в 3DMAsterKit для создания растрового 3D изображения.

Полученная стереопара (первый и последний кадры серии)
flower_p
Анаглифная картинка:

flower_a

Анимированный GIF, экспорт из 3DMasterKit.
animated gif


Использование редактора GIMP для создания карты глубины

Программа GIMP — это бесплатная альтернатива Photoshop. Причем, программа локализована на много языков, в том числе на русский. Загрузить редактор можно отсюда http://www.gimp.org/

GIMP можно эффективно использовать для создания карты глубины. В программе есть удобные инструменты рисования контуров и выделения объектов. Рассмотрим пример создания карты глубины:

Имеем исходную картинку 2-х годичной давности «Продавец шляп в Неваде»:
hat_seller
Используя GIMP разрезаем для удобства на слои, а затем с помощью инструментов градиентной заливки раскрашиваем слои так, как нам подсказывает наше представление об объемности сцены. Когда вы рисуете карту глубины, помните, что это не есть само изображение, поэтому не нужно повторять в карте глубины игру свето-тени, цветовые переходы и т.п. В карте глубины указываются только расстояния до объектов.
Описанный выше процесс показан на следующей картинке:
hat_layers_gimp
Затем выполняем команду «Flatten image» (склеить слои) и используем фильтр гаусса для размытия изображения, чтобы сделать карту «помягче». В результате получаем:
hat_seller_original_dm
Теперь используем Triaxes StereoTracer для того, чтобы просчитать серию картинок.
Стерео-пара (первый и последний кадр полученной серии):
hat_seller_pair_parallel
Анаглифная картинка:
hat_seller_anaglyph
Анимированный gif (экспорт из StereoTracer):
animated gif

Еще один пример преобразования обычной фотографии в 3D

Для построения карты глубины в этом примере использована программа GIMP и методика, описанная выше.

Исходная фотография и карта глубины:

jazz_singer_dm
Рассчитанная стереопара
jazz_singer_parallel
Анаглифное изображение
jazz_singer_a
Анимированный gif (экспорт из StereoTracer)
animated gif

Кстати, если вы внимательный зритель, то могли заметить, что на картинке выше при отрисовке карты глубины на стуле я поторопился и допустил небрежность, на что мне, в свое время, справедливо указали читатели форума http://www.3dphoto.net/forum/. Пришлось доработать.
Слева первый вариант карты, справа — с коррекцией.
jazz_dm_first_and_edited
Исправленная карта глубины
jazz_singer_dm-ed

Анимированный gif с новой картой глубины.
animated gif