avlasov (avlasov) wrote,
avlasov
avlasov

Categories:

Частотная ретушь кожи - мини-учебнег, ч5

Частотная декомпозиция и ее варианты

Вышеприведенные быстрые методы не используют полной частотной декомпозицией. В данном случае, под полной частотной декомпозицией я понимаю разложение изображение на несколько составляющих с разными частотными диапазонами, которые в "сумме" дают исходное изображение.
Классическим примером является наложение копии слоя, обработанного High Pass, на копию слоя обработанного Gaussian Blur с тем же радиусом, в режиме наложения Linear Light, Fill 50%.
Конечно, из-за особенностей реализации этих операций в фотошоп, стопроцентного совпадения не получится, будут некоторые отличия, в следствие ошибок округления. Чтобы их снизить, лучше накладывать при Fill 100%, но снизить контрастность High Pass слоя в два раза, либо кривыми, либо корректирующим слоем.

Впрочем, я не хочу обсуждать тут технические подробности, ибо их, а также многое другое, прекрасно описал Андрей Журавлев в своей статье. Также имеет смысл почитать остальные его статьи на тему частотного разложения, да и весь его ЖЖ в целом.
Конечно, если бы у меня был настоящий учебник, то я бы расписал сам, и картинки нарисовал, но в данном случае, совершенно не охота повторяться в том, с чем прекрасно справился кто-то другой.

Моя же цель состоит в том, чтобы обозреть всеразличные варианты (впрочем тоже повторять других, но в сжатом и систематизированном на мой вкус виде).
И тут есть два фактора. Во-первых, это режим наложения, которым "суммируются" изображения. А также обратную ему операцию "разложения" изображения.
А во-вторых, вид фильтра низких частот. И опять-таки комплиментарный ему фильтр высоких частот, который мы его получаем "вычитая" из исходного изображения его версию, обработанную низкочастотным фильтром.

Рассмотрим сначала, доступные нам виды фильтров.
Конечно, всеразличных фильтров придумано очень много, и стандартный ФШ в разделе Filter/Blur содержит в себе кучу вариантов низкочастотных фильтров, почти все из которых можно применять для частотного разложения (кроме Average ну и пожалуй просто Blur/Blur More - точнее последние просто неудобно применять).
Однако, обычно используются два варианта Gaussian Blur и Surface Blur. Плюс иногда для локальной обработки длинных узких полосок может быть удобно использовать Motion Blur.

Gaussian Blur - быстрый и гибкий вариант, ибо имеет дробные радиусы, что позволяет делать тонкую настройку.
Однако, у гаусса есть недостаток - он размывает контуры, что часто бывает неудобно, например он затрудняет частотную ретушь около этих самых контуров. С этой проблемой помогает бороться Surface Blur, который есть разновидность билатерального фильтра, снижающего степень размытия рядом с ребрами. Surface Blur был бы отличным базовым вариантом для частотного разложения, к сожалению он довольно медленный, особенно в 16 битном режиме да на больших картинках. Поэтому базовым все же является Гаусс.
Остальные фильтры, кроме эпизодического Motion Blur'а вряд ли представляют серьезный интерес, разве что поразвлечься. Впрочем, возможно для чего-то можно осмысленно применить Lens Blur или же Smart Blur, но я не пробовал.

Надо еще добавить, что в стандартном ФШ есть еще один фильтр, применимый для размытия - это Filter/Noise/Median (можно Dust&Scratches но там надо выставлять параметр threshold в 0, что даст ту же медиану). У него тоже есть достоинство, что он достаточно бережно относится к ребрам, правда, часто дает резкие переходы, что не всегда есть хорошо. Тем не менее, он быстрый, и для не очень больших радиусов (например, для отрезания текстуры) его использовать пожалуй даже предпочтительнее гауссианы, ибо он не размывает ребра. Можно сказать, что это в некотором роде менее гибкая, но более шустрая версия Surface Blur.

Итого, базовый список фильтров: Gaussian Blur, Median, Surface Blur. Плюс Motion Blur для локальной обработки узких полосок.

Рассмотрим теперь режимы наложения/разложения.
Итак, первый вариант - это линейный, т.е. сложение, вычитание. В ФШ ему соответствует режим наложения Linear Light. Правда, в ФШ он реализован довольно хитро, но не суть важно. Вычисление high pass версии получается наложением инвертированного low-pass слоя на исходный (либо apply image, substract с параметрами scale 1, offset 128).
Сложение получается наложением high pass слоя на low pass, в режиме Linear Light, но нужно как-то уменьшить контрастность (либо Fill 50%, либо ослабить контраст кривыми, либо brightness/contrast -50, legacy mode, либо Fill 100, но при разложении использовать apply image, substract scale 2, offset 128).

Второй, "нестандартный" вариант - использовать пару Vivid Light/Overlay. Эти режимы чаще дают ошибки округления, но при ретуши кожи это обычно не критично, впрочем у меня на данный момент нет опыта использования этой пары для ретуши, зато она прекрасно работает вместе с Surface Blur для повышения резкости.
Вычисление high pass версии реализуется наложением low pass слоя на исходник в режиме Vivid Light. А "сложение" происходит в режиме Overlay (high pass поверх low pass).

Можно ли еще реализовать в ФШ разложение полностью обратимым способом (без учета ошибок округления) - я лично не в курсе. Но на самом деле, поскольку обратимое разложение не всегда нужно - ибо мы же все равно редактируем изображение, поэтому необратимость часто можно использовать как способ ослабить текстуру, полученную другим способом (фильтр High Pass например). Что актуально для быстрых методов. В теории, для наложения высокочастотных слоев можно использовать любой контрастный метод, однако на практике для этого используют (помимо Linear Light, Fill 50%) Overlay, Soft Light и Hard Light.

Итого, получается следующая схема стандартных возможностей ФШ для частотного разложения.
1 Варианты НЧ фильтра
1.1 Gaussian Blur
1.2 Median
1.3 Surface Blur
1.4 эпизодически Motion Blur

2 ВЧ фильтр один - High Pass

3 Разложение (для получения ВЧ составляющей из НЧ):
3.1 Linear Light/Subtract
3.2 Vivd Light

4 Сложение (для сложения ВЧ и НЧ составляющей в итоговое изображение)
4.1 Linear Light, Fill 50% (или снизить контраст в два раза другим способом
4.2 Overlay
4.3 Soft Light
4.4 Hard Light

Видимо есть еще варианты, но не очень интересные.
Subscribe

  • StatMod и ML

    Рассмотрим, чем полезен StatMod в плане инженерии ML и почему "преподаваемый" ML тут проигрывает. Под "преподаваемым" ML я имею в…

  • Инженерность в DataScience

    Когда я пишу что инженерность в ML слабо развита, это не значит что ее нет вообще. Точнее будет сказать, что в DataScience (некая объемлющая…

  • Основные вопросы в инженерии МЛ

    По своему опыту я выделяю следующие основные вопросы/проблемы, которые возникают при решении практических МЛ задач. Какую задачу мы решаем? Ту ли…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments