Unsharp Mask с помощью Gaussian Blur

По немногочисленным просьбам читателей и слушателей, выкладываю пошаговую и наглядную инструкцию, как с помощью одного только фильтра «Gaussian Blur» увеличить резкость картинки аналогично фильтру «Unsharp Mask».

1. Duplicate layer «Orig», call it «Gblur».

2. Click on «Gblur», cast «Gaussian Blur» on it.

3. Click on «Orig», duplicate it to «Orig – Gblur», click on new layer, move at the top of stack.

4. «Apply Image»: Layer «Gblur», blend mode «Subtract», Scale 1, Offset 0, No invert.

5. Click on «Orig», duplicate to «Orig + (Orig-Gblur)», click on new layer, move at the top of stack.

6. «Apply Image»: layer «Orig – Gblur», blend mode «Add».

7. Click on «orig», duplicate to «Orig + GblurInv», click on new layer, move at the top of stack.

8. «Apply Image»: layer «Gblur», «Add», check «Invert».

9. Duplicate «Orig + (Orig-Gblur)» to «Orig + (O-Gb) – (O-GbInv)», click on it, move at the top of stack

10. «Apply Image»: «Orig + GblurInverted», «Subtract», «Invert».

Как вы понимаете, названия слоёв — дело ваше. Выберите что-то удобное, чтобы не запутаться. Ну и разумеется все эти шаги нужны только для того, чтобы лучше представлять механизм увеличения резкости фильтром «Unsharp Mask». Фильтра «Smart Sharpen» это тоже касается (при выключеном «more accurate»). Только к «Gaussian Blur» добавляются «Lens Blur» или «Motion Blur» для других режимов.

По сути, здесь очень хорошо видно, что реального увеличения информации в картинке не происходит. Только перераспределение яркости и изменение локального контраста. В этом «Unsharp Mask» принципиально отличается от «деконволюционных» фильтров типа «Focus Magic», «Astra Image» или даже «Filters: Custom» с соответствующими настройками.

Unsharp Mask with Gaussian Blur (click to enlarge)

Ещё кое-что интересное про Unsharp Mask.

4 Comments

  1. “или даже «Filters: Custom» с соответствующими настройками” вот в этом я сильно сомневаюсь (по поводу «Focus Magic», «Astra Image» я просто не знаю принципа работы), так как гаусово размытие – это не что иное как тот же кастом фильтр в котором цифры заданы как значения нормального распределения с заданным радиусом и константой.

    И вообще то что называется custom filter – convolution matrix по научному (если я конечно совсем все не забыл с учебы своей))) ), так вот это же просто коэфициенты в сумме исходных значений пикселей. Откуда может взяться новая информация мат.методом? Аппроксимация и интерполяция – это на мой взгляд не новая инфа.
    Вот внешний по отношению к данному изображению источник (еще одна фотография, но с другим фокусом, например) да.

    • Инфа отсюда.
      Ну да. А деконволюция ака развёртка — что такое? Восстановление по заданному алгоритму исходного изображения, с которым приключилось несколько искажений и трансформаций. Как я понял, это попытка статистически предсказать, что должно быть.
      Матрица
      0 -1 0
      -1 5 -1
      0 -1 0
      это и делает. Грубо конечно, примитивно, но именно оно. В Astra Image используются какие-то навороченные алгоритмы с десятками итераций и двумя часами работы над одной моей фотографией. Можно погуглить на тему «Maximum entropy, Lucy Richardson and Van Cittert deconvolution methods». Я пока не вникал — работает, и хорошо.

      Знаю, что есть сложные алгоритмы для MathLab, причём сопряжённые с Photoshop.

      И почему математическим методом не может быть новой информации?
      Вот последовательность: «A B C D ? F G». Не хватает одного символа. Но его легко восстановить экстраполяцией. Достоверность будет не стопроцентная, но ведь мы же и не требуем абсолютной истины. Насколько я помню со времён своего обучения, количество информации — некая мера разнообразия состояний системы. Это разнообразие можно увеличить хоть генератором случайных чисел, но не все способы будут нам одинаково полезны.

      upd. Подумал ещё вот что. Возможно сам «информационный» подход неверен.
      Например, у нас распределение яркостей в real world на границе объекта такое:
      10-10-10-0-0-0 (светлое резко обырывается в тёмное).
      Матрица+оптика блюрят картинку, размывая переход:
      10-8-7-3-2-0.
      Можно предположить некий алгоритм, повышающий краевой контраст скажем, до
      10-10-9-1-0-0,
      что, хоть и не оригинал, но явно к нему ближе, чем размытая версия.
      Но что там с информацией? В оригинале всего две градации состояния. В обработанной версии — четыре. Зато в заблюренной — аж шесть.
      Если смотреть по количеству пикселей, то их число не изменилось.
      Или я не въезжаю, или «информационный» подход для оценки качества алгоритма тут неприменим.

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

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

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

        Сложные алгоритмы для матлаб…))) я диплом на нем писал, они там не сложные, они там скорее простые. В том смысле, что их очень легко реализовывать.

        • «Сложные» — это для меня :) Всё относительно.
          Я тут полез искать точное определение, что такое «информация» и «количество информации» и понял, что это не к нам. Лучше действительно принять рабочим: «визуально картинка становится похожей на правду» и не увязать.