Устранение дефектов кожи и общий оживляж картинок при помощи вейвлетов

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

— А что с мордой лица? Это же окно в душу…
— Это правильно. Ну что ж… Глаза у вас очень выразительные, но можно что-нибудь сделать с появляющимися морщинами.
— Морщиночками! Они такие крохотные, незаметные… Крохотульки!
— Да, отличное сравнение. Умеете вы подобрать слова. Мы сделаем небольшой надрез, ну и подтянем кожу словно на барабане… Не так упруго, конечно.

к/ф «После прочтения сжечь»

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

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

Специально для гениальных фотографов другие гениальные люди, программисты по профессии, написали целую пачку фильтров, которые как бы разглаживают кожу, не трогая лишнее. Однако отсутствие интеллекта у фильтров обычно приводит к тому, что гениальные фотографы, посмотрев на кожу, но не посмотрев на всё остальное, запускают пакетную обработку полусотни-другой фотографий и результат в чистом виде сдают заказчику (вариант: выкладывают в сетевой фотоальбом, жежешечку и прочие вконтакте с фейсбуками). Наиболее вменяемые сначала рисуют масочку, а потом уже применяют свои KODAK DIGITAL GEM Airbrush, Alien Skin Image Doctor и прочие Surface Blur. Но и в этом случае кожа часто выглядит в стиле «мой папа — андроид».

Как НЕ надо делать

Давайте посмотрим на замечательный своей неприкрытой чудовищностью пример обработки фильтром Portraiture. Заранее просим прощения у авторов штепселя за невольный чёрный пиар, но именно эта картинка промотивировала написание статьи, так что работайте тщательнЕе, товарищи маркетологи.

Вот исходная картинка:

Оригинал

А вот результат обработки:

Обработка Portraiture

Как видите, разместившие этот пример в качестве рекламы, применив фильтр ко всей картинке целиком, сделали своему продукту антирекламу. Какая девушка согласится на переваренные спагетти вместо волос?

Анализируем проблемы оригинала

Ещё раз посмотрим на исходную картинку и отметим для себя основные недочеты:

  • шероховатая кожа;
  • пигментация;
  • общая блеклость картинки;
  • активный фон, особенно в правом верхнем углу.

По второму пункту невозможно не съехидничать. Лица веснушчатых девушек все-таки лучше снимать крупным планом — в этом случае веснушки выглядят выигрышно. А так как-то даже не очень понятно, что с этой мелкой пигментацией делать.

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

В то время как наличие неплохого фильтра а-ля Alien Skin Image Doctor не помешало бы, для ретуши при этом хочется иметь под рукой инструмент из серии «отрада параноика», дающий полный контроль над изображением. Таким инструментом является расширение «Вейвлетный разбор» для GIMP.

Принцип работы плагина

Фильтр работает очень просто: он разбирает изображение на слои, содержащие разные уровни детализации оригинала — от самых мелких, однопиксельных элементов до наиболее крупных. Чтобы полученное многослойное изображение выглядело как оригинал, режим слоев с уровнями детализации меняется на «Объединение зерна». У каждого изображения в зависимости от размера есть свой разумный предел числа уровней детализации. Расширение определяет его само и не дает ввести большее значение слоев-уровней. Все, что не попадает в тот или иной уровнь детализации, уходит в слой под названием «Вейвлетный остаток» (Wavelet residual).

Исправляем недочёты

У авторов Portraiture, надо полагать, было преимущество в виде полноразмерной фотографии, с которой можно работать более точно. Мы же, пользователи GIMP, традиционно удовольствуемся малым.

Устанавливаем расширение. Открываем изображение. Запускаем «Фильтры — Общие — Вейвлетный разбор…». Пяти уровней будет достаточно, а больше восьми тут сделать уже не дадут. Галочку «Добавить альфа-канал в слои уровней детализации» лучше сразу включить, чтобы потом не делать это для каждого слоя ручками.

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

Оригинал

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

Оригинал

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

Теперь надо что-то сделать с блеклостью. Скопируйте слой вейвлетного остатка и поместите его поверх стопки слоёв, поменяйте режим на «Перекрытие» или «Рассеянный свет» и сбейте непрозрачность до 60%:

Оригинал

Тадам! Лицо стало значительно румянее, а волосы приобрели приятный золотистый цвет. Если есть желание добавить девушке загара, можно использовать и «Направленный свет», дающий более темное и насыщенное изображение.

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

Оригинал

В нашем случае эта размытость примерно соответствует Гауссову размыванию на 35 пикселов в обе стороны. Это и объясняет легонькое свечение а-ля Ортон.

С этим слоем тоже можно сделать много интересного. Например, вооружившись полупрозрачной кистью с цветом вроде фиолетового (R:60,G:71,B:116) и режимом «Насыщенность» можно добавить щекам румян. А поменяв режим исходного слоя вейвлетного остатка и его копии на «Экран», вы получите что-то вроде фотографии в высоком ключе.

Остаётся активный фон. Здесь всё просто. Как видите, скопированный слой вейвлетного остатка уже немного приглушил его. Теперь остается лишь вооружиться стеркой и протереть четыре верхних слоя детализации:

Без активного фона

В принципе, можно упростить выполнение этого шага. Оставьте видимыми только те слои, в которых хотите протереть дырку, и воспользуйтесь командой «Изображение — Объединить видимые слои…», не забыв поменять режим результирующего слоя обратно на «Объединение зерна». Затем при необходимости вы всегда можете свести изображение и повторно выполнить вейвлетный разбор. Маски при этом, разумеется, будут потеряны.

Увлекаться стиранием сразу в нескольких слоях детализации всё же не стоит. При выборочном затирании и более сложном фоне сквозное стирание приводит к появлению «провалов» и затуманенности. Перед автором лежит специально сделанный отпечаток 20×30 со сквозным стиранием участков кожи в трёх слоях. Это выглядит настолько чудовищно, что одним покаянным жертвенным бараном не обойтись — минимум пять баранов и две девственницы.

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

Еще пара моментов. Как вы понимаете, подобный оживляж при помощи вейвлетного остатка легко может стоить детализации в тенях. Эта проблема в ряде случаев легко решается применением маски. Рассмотрим это на примере эпической картины «Мальчик, покажи пальчик». А чтобы вы в полной мере ощутили любовь редакции к хождению по граблям, мы эту картинку уменьшим до размера 400×600 пикселов:

Исходная картинка в Raw примерно такая:

Оригинал

Корректируем экспозицию в UFRaw:

С коррекцией эспозиции

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

Стопка слоев

И получаем:

Результат 2 с масочкой

Как видите, волосы и колоритный национальный костюм дяденьки уже не исчезают во мраке.

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

Оригинал

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

Результат 3

Редакция всея линуксграфикса на прощание хочет отметить, что подобное огламуривание картинок имеет смысл в совершенно специфических, описанных в начале статьи случаях, и за попытку читателей применить эту технику к уличной фотографии она перед богом и людьми не отвечает. Впрочем, как подсказывают в разных жежешечных сообществах, разобрав вейвлетами картинку на разные слои детализации, можно еще и целлюлит вылечить. В связи с этим редакция в лице автора прозревает рост популярности фильтра «Интерактивное искажение» (IWarp) для ковыряния одного из слоев детализации. Очень жаль, что Тор Лиллквист так и не дописал более интерактивную версию этого фильтра в виде полноправного инструмента.

Вы наверняка найдете немало иных применений этому замечательному расширению. Как написал редакции сам Марко, «You know, I kinda fucked up photography, because from now on you will never see any real pictures any more, since it takes only 5 mins to retouch them (without the knowledge of a professional). Especially since the plugin is open source.»

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

  1. Вейвлетное подавление шума (Wavelet denoise). Умеет работать не только в YCbCr, но и в CIELAB. Именно его ковыряние с последующим чтением статьи о Surface blur заставило одного не в меру резвого пользователя GIMP настолько задолбать Марко вопросами, что тот просто сел и написал расширение для вейвлетного разбора.
  2. Вейвлетное повышение резкости (Wavelet sharpen). Автоматически выполняет разбор и повышает резкость в верхнем уровне детализации (1 пиксел).
  3. Генератор шума (Noise generator). Умеет создавать шум при поомщи различных алгоритмов.

Автор: Александр Прокудин
Лицензия на текст: GNU FDL
Лицензия на фото: Attribution-Noncommercial-Share Alike 2.0 Generic
Лицензия на фото с сайта Portraiture: спрашивайте разработчиков

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*