Цветокоррекция анаглифных стереоизображений


Предположим, что вы, воспользовавшись каким-либо приспособлением, например, приведенным выше, или с помощью программы трёхмерного моделирования получили стереопару (изображения, предназначенные для правого и левого глаза) и решили воспроизвести его с помощью анаглифического метода. Анаглифический метод заключается в разделении изображений, предназначенных для левого и правого глаза, с помощью светофильтров, имеющих непересекающийся спектр пропускания.

Для описания всех нюансов, воспользуемся двумя примерами.

Первую стереопару предоставил Peter Wimmer.

Вторая стереопара взята с "3D pictures from www.WoW3D.net".

Далее те, кто уже знают, как делать анаглифы, скорее всего, сделают следующее. Составят файл в представлении RGB, красный канал которого — это красный канал левого снимка, а синий и зелёный каналы — это соответствующие каналы правого снимка. При этом, если вы пользовались любой программой для получения анаглифов и выбрали опцию цветной анаглиф, то она сделает то же самое.

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

Ниже приведён результат для первой стереопары, полученный этим способом.

Это и остальные анаглифные изображения нужно смотреть в анаглифные очки, у которых красный фильтр находится слева. Их можно купить в институте Стереокино или на сайте Allana.ru


Результат несколько неприятен для восприятия. Попробуем разобраться в причинах. Если вы посмотрите на это изображение через красный и голубой фильтр, то увидите следующее.



Итак, то, что видит левый глаз

  • в целом темнее того, что видит правый глаз
  • красный канал плохо сохранил листву
  • красный фильтр пропустил излучение зелёного канала, из-за чего возникли следующие дефекты

Изображение для правого глаза получается в целом лучше, но красная футболка выглядит слишком тёмной.

Возникают классические вопросы — "кто виноват?" и "что делать?".

Найти виновных — не сложно.

Во-первых, попытка передать на одном носителе два изображения неизбежно приводит к потере информации.

Во-вторых, тот факт, что фильтры очков не имеют общего спектра пропускания, ещё не означает, что на экране существуют цвета, которые проходят в один светофильтр и не проходят в другой.

Вопрос "что делать?" — заведомо сложнее, так как при кодировании двух изображений на один носитель проблема потери информации решается в IMAX с помощью поляризации. Вопрос разделения ракурсов остаётся.

Итак, вы сняли стереопару. Скорее всего, снимали вы её с рук, с помощью стереонасадки или с помощью другого приспособления, которое не способно обеспечить абсолютно точное взаимное расположение ракурсов. Кроме того, если вы использовали пару аппаратов с ZOOM объективом, то фокусные расстояния могут слегка различаться. После этого все, кто занимаются изготовлением стереофотографий делают следующее:

  • изменяют масштаб изображений
  • поворачивают
  • сдвигают по горизонтали и вертикали

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

После выполнения этих операций необходимо сохранить полноцветные изображения для левого и правого глаза. С этого момента, если вас не устраивает полученный анаглиф, придётся пользоваться другими графическими редакторами.

Приступим к первому этапу цветокоррекции.

Из левой картинки нужно получить один канал, а из правой картинки два канала. Раньше от левой картинки брался красный канал, а от правой синий и зелёный, но такой вариант нас не устраивает по следующим причинам:

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

Начнём с получения канала из левого снимка. Чтобы избавиться от первого недостатка, можно менять гамму, яркость и контраст красного канала целиком или выделенного фрагмента (выделять можно строго по контурам объектов или маской с плавными границами) — снизить насыщенность изображения, вплоть до того, что выбрать опцию grayscale и сохранить левое изображение под новым именем.

Но поскольку опция чёрно-белый анаглиф уже заложена в StereoPhotoMaker, то рассмотрим другие возможности, которые позволяют частично сохранять информацию о цвете.

Итак, как снижать насыщенность? Для этого можно воспользоваться инструментом ChannelMixer и подать на красный канал, например, 70% красного + 30% зелёного, или использовать другие соотношения каналов.

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

Снижать насыщенность можно и иначе. Для красно-голубых анаглифов очень удобен следующий способ — перейти в представление Lab и с помощью инструмента Levels (Contrast Enhancement) снижать контраст канала. Далее нужно опять перейти в RGB представление.

Аналогичные операции нужно производить с синим и зелёным каналами. В наших примерах синий и зелёный канал в целом удовлетворительны, за исключением футболки. Итак, откроем правый снимок, выделим футболку, и изменим синий и зелёный канал с помощью канального микшера, например,
G=30% красного+70% зелёного.
B=20% красного+80% синего.

Итак, смотрим результаты. Ниже изображён красный канал левого изображения и синий с зелёным каналы правого изображения после описанной цветокоррекции.




Теперь для первого изображения нам остаётся как-то устранить помехи, связанные с пропусканием красным фильтром излучения зелёного люминофора монитора, который будет описан после описания того же этапа работы над второй стереопарой.

Здесь уместно показать ещё один интересный, но, к сожалению, трудоёмкий приём — сшивание канала по частям. Рассмотрим все каналы правого снимка.

красный

зелёный

синий

Итак, мы видим, что в целом наиболее удачным с точки зрения содержания деталей является зелёный канал, но в правом нижнем углу больше всего деталей содержится в красном канале.

Попробуем из этого всего собрать чёрно-белый снимок с наибольшим количеством деталей. Делается это так. Сначала выбирается основа — то есть как-нибудь из этой фотографии делается один чёрно-белый снимок. Если вы хотите получить цветной анаглиф, то за основу нужно брать соответствующий канал (возможно, слегка изменённый с помощью канального микшера c долей исходного канала не менее 60%). Далее смотрим, на каких участках какой-либо канал оказывается более детализованным, чем основной снимок. Эта область на удачном канале выделяется и вставляется в основу на своё место. Затем, для обеспечения плавного перехода, у объекта делаются полупрозрачные края, и к нему применяется инструмент Lewels. Чтобы придать ему яркость и контраст, который хорошо вписывается в основу, часто имеет смысл повысить контраст. В определённых случаях объект имеет смысл делать полупрозрачным.

В результате долгой "хирургии" у меня получился следующий результат.

Итак, на данный момент у нас имеются для каждого анаглифного изображения три канала. Канал, сделанный из левого снимка и два канала, сделанные из правого снимка. Для второго снимка каналы, сделанные из правого снимка одинаковы, так как второй снимок делается монохромным.

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

Теперь можно приступить к следующему этапу — обеспечению максимального разделения ракурсов, то есть устранению дефектов, когда один глаз видит детали изображения, предназначенные для другого глаза.

Основа метода заключается в следующем. Поскольку красный фильтр пропускает излучение зелёного люминофора — это нужно компенсировать. Компенсировать это можно следующим образом — затемнить красный канал в тех областях, в которых видны помехи. Это означает, что из красного канала необходимо вычесть некоторую часть зелёного.

Значение цвета в кодировке RGB не имеет пропорциональной связи с интенсивностью монитора, но при заводских настройках приближённо выражается формулой

I=k*nGamma,

I — интенсивность, n — значение цвета, k — коэффициент пропорциональности. Gammа зависит от настроек монитора, но можно считать, что Gamma=1,55

На основании этого пишу, что конкретно надо делать.

  1. Сделать так, чтобы новые числа, описывающие красный и зелёный канал соответствовали нужной яркости монитора. А именно — их надо затемнить с помощью гамма-кривых. При этом для зелёного канала я обычно использую гамму 0,67; для красного — 0,72, так как он получается темнее. Если красный канал можно сделать светлее с помощью Levels, то это рекомендуется сделать.
  2. Произвести вычитание с помощью ChannelMixer.
    Примерно R = 100% красного — 20% зелёного
    В общем, здесь содержится одна проблема — результат этой операции для каждого пикселя не может быть отрицательным, иными словами, если для пикселя 100% красного < 20% зеленого, то результат равен нулю.
    Основная идея решения данной проблемы следующая — чтобы у бедного что-то отнять, ему надо это дать. Итак, выделяем с помощью маски с плавными краями участки, для которых нарушается условие 100% красного > 20% зелёного. При этом переходная часть маски должна находиться за пределами этой области.
    Затем осветляем эти участки, так, чтобы данное условие выполнялось. Выполняем это вычитание. Конечно, можно снизить контраст и для всего красного канала, то есть с помощью инструмента Lewels добиться, чтобы значение красного канала было больше 50.
    Похожим методом действует StereoPhotoMaker, когда пользователь заходит в Ghost-redused anaglyph и сдвигает влево второй рычажок примерно на 20 единиц. При этом назначение всех четырёх регуляторов автору статьи понять так и не удалось.
    Но в борьбе с дефектами, как и в случае "сшивания" канала результат зависит от опыта и терпения. В StereoPhotoMaker результаты получаются весьма блёклыми.
  3. 3. Теперь остаётся применить для красного и зелёного канала гамму 1,55 и сохранить результат.

Обращаю внимание, что при использовании гамма-кривых можно потерять детали в тенях. Это происходит из-за округления промежуточных результатов. Данная проблема не возникает, если работать в режиме 16 бит на канал.

Рассмотрим результаты проделанной работы.


В общем, работа проведена не зря. Видно стало значительно лучше. Устранить белые треугольники правого ракурса, которые видны в красный фильтр полностью не удалось, но они стали менее заметны.

Вот что можно увидеть в красный фильтр, если все коэффициенты подобраны правильно.

При этом сам красный канал выглядит вот так.


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

Здесь для выравнивания интенсивностей в левый и правый глаз, я на втором этапе красный канал сделал ярче, а синий и зелёный каналы — темнее.

А вот, цветной вариант.

Сжатие анаглифных изображений


Допустим вам надо сжать анаглиф. Как это сделать?

Во-первых, если вы никак не исправляли цвета на готовом анаглифе, то в интернете наиболее целесообразно размещать стереопару в формате jps (изображение в формате jpg, полученное стыковкой левого и правого изображения).

Формат jpeg2000 при равном объёме файла всегда обеспечивает более высокое качество, чем любой другой формат.

При сжатии анаглифа в формате jpeg могут возникать дефекты, когда в фильтр видны контуры деталей другого ракурса. Причём они могут возникнуть даже при максимальном качестве.

Новая версия программы StereoPhotoMaker кодирует анаглифные изображения в jpeg оптимальном образом. Для этого в меню Save Stereo Image выбирается формат jpeg и ставится галочка напротив No compression ghosting.

Теперь описываю последовательность действий, как закодировать уже готовое анаглифное изображение, хранящееся в несжатом формате.

В StereoPhotoMaker заходим в File/Open Left/Right Images. Выбираем изображение, которое нужно сжать. Затем программа предлагает выбрать правое изображение. Выбираем этот же файл. Далее выбираем опцию Color Anaglyph. Теперь сохраняем результат.

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

Заключение

Цветокоррекция анаглифных изображений делится на два этапа.

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

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

Так как анаглифный метод не единственный, то обязательно сохраняйте стереопары.





Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.