Что на самом деле делает фильтр High Pass в Photoshop?

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

Подумайте над тем, чтобы спросить, какой обычай будет следующим ;)
Если вы хотите понять алгоритм, предлагаю The Scientist and Engineer’s Guide to Digital Signal Processing .
Проверьте этот случай: graphicdesign.stackexchange.com/questions/98558/… Там есть ответ, который подробно показывает 1) как фильтрация HP в Photoshop работает внутри 2) предполагаемый принцип работы создает то же, что и фильтр HP. История не основана на разборке Photoshop. Он содержит одно предположение: фильтрация HP в Photoshop выполняется путем вычитания из изображения размытой версии того же изображения.

Ответы (4)

Высокий проход противоположен размытию по Гауссу.

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

деконструированное изображение

Вы использовали нерезкую маску для повышения резкости изображения? Этот фильтр фактически эквивалентен взятию изображения и добавлению к нему копии с фильтром верхних частот. Вы можете убедиться в этом в Photoshop, применив фильтр высоких частот к дублированному слою и изменив режим наложения на наложение.

введите описание изображения здесь

Вы можете добавить, что изображение серое, потому что оно смещено, чтобы избежать отрицательных значений. И наложение в основном добавляет все, что выше 128, и вычитает значения ниже. Таким образом, нерезкая маска — это, по сути, фильтр усиления высоких частот. Я добавляю ответ на этот счет, но предпочел бы удалить его в пользу вашего ответа. Также есть еще 3-й вариант использования — частотное разделение.
Незначительная придирка: 1-е предложение: «Отфильтровывает» означает «устраняет», поэтому фильтр нижних частот (размытие) не «отфильтровывает низкие частоты». Фильтр верхних частот (пропускает через себя высокие частоты); фильтр нижних частот (пропускает через себя низкие частоты). Фильтр нижних частот также называют «фильтром верхних частот», поскольку он устраняет высокие частоты. Так и получается, что высокие частоты являются низкими.
joojaa- хороший комментарий. Йорик - спасибо, исправил.
Святое дерьмо. Возьмите изображение в файл Photoshop. Дублируйте слой с изображением в нем. Размытие (значение 10) на слое 1. Фильтр верхних частот (значение 10) на слое 2. Установите для слоя 2 непрозрачность 50%. Добавьте контрастный слой, установите его на старый и +50 контрастности. Сравните это с исходным изображением. С ума сошел. Это прекрасно объясняет, что все это делает.
@DirkvB Я попробовал то, что вы сказали, и это сработало. Не могли бы вы объяснить причину непрозрачности 50% и контрастности +50? Также следует отметить, что этот метод точно воссоздает исходное изображение, но оно не идентично (просто запустите смешение различий между исходным и этим, чтобы понять, что я имею в виду).
Спасибо, что указали на разницу в смеси. Это потрясающе! Я думаю, что на высоком уровне речь идет о добавлении двух изображений друг к другу, взяв половинки каждого. Вы теряете данные из обоих, так что диапазоны «выравниваются». «Диапазоны» относятся к значениям цвета пикселя. Я не специалист (математика не моя сильная сторона), поэтому я могу только объяснить, как это имело смысл для меня :) Если вы найдете лучший ответ, поделитесь!

Фильтр высоких частот — это фильтр, удаляющий низкочастотную информацию из сигнала. Теперь есть много способов реализовать фильтр верхних частот, но фильтр верхних частот фотошопа, скорее всего, является результатом вычитания размытого изображения из оригинала (как упоминалось @filip ). Просто все изображение за вычетом низкой частоты — это просто высокая частота.

Теперь, если вы вычтете размытие из изображения, вы получите отрицательные пиксели. Это невозможно для фотошопа. Вместо этого результат смещается на 127 (или 0,5, если вы хотите использовать значения с плавающей запятой), поэтому серый цвет на самом деле означает отсутствие изменения значения. Наложение и режим линейного освещения предназначены для работы в обратном порядке по сравнению с изображениями, закодированными таким образом (в зависимости от того, что вам нужно, кусочное умножение/сложение или сложение/вычитание).

Теперь, для чего бы вы использовали это? Что ж, его можно использовать для изоляции краев, и основной вариант использования — использовать его в качестве инструмента для повышения резкости. На самом деле нерезкая маска делает это за один шаг. Однако иногда нерезкая маска не дает достаточного контроля над результатами. Таким образом, вы можете использовать фильтр высоких частот, чтобы отделить промежуточный этап и манипулировать им, чтобы контролировать, где вы хотите, чтобы резкость происходила, а где нет.

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

Пример

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

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

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

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

Здесь следует отметить, что фильтр высоких частот пропускает высокие частоты и ослабляет (т.е. уменьшает) низкие частоты .

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

(Эта цитата примерно на полпути и предшествует примерному изображению, которое должно быть весьма полезным).

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

и просто для непрофессионала: ослабить означает «уменьшить силу, значение или воздействие»
@Йорик, мне это не пришло в голову. Это слово я использую ежедневно в своей работе. Отредактировано
@ChrisH Преобразование Фурье - это один из способов реализации фильтра верхних частот (хотя и не единственный), но я почти уверен из прошлых экспериментов, что Photoshop не выполняет преобразование Фурье напрямую, а вместо этого вычитает размытие. Тем не менее, может случиться так, что более новые фотошопы фактически используют Фурье для размытия (версии до CS, CC, по-видимому, не делали этого), поскольку он предлагает ярлык для вычисления размытия .... Но у БПФ есть свои проблемы, и может быть, что PS на самом деле просто разбивает ядро ​​​​свертки без этой оптимизации в цикле. Итак, я действительно объяснил, как устроен фильтр.
@joojaa вычитание размытия - это то, что делает нерезкая маска, и оба варианта существуют, поэтому у меня есть сомнения. Если бы у меня был фотошоп, я бы попробовал протестировать (хотя, поскольку форма фильтра в области Фурье неизвестна, было бы трудно однозначно доказать, что используется). Все, что я мог проверить в GIMP, не очень помогло.
@ChrisH хорошо, вы получаете как одну операцию, так и кодовую базу. Только higpass был более полезен в прошлом, когда вы не могли выполнять неразрушающее редактирование. Но операции дают точно такие же результаты, или, по крайней мере, они дали те же результаты, когда я последний раз тестировал это около 1,5 лет назад. Точно так же вы можете сделать нерезкую маску с преобразованием Фурье или любым другим преобразованием, связанным с частотной областью. Они математически эквивалентны, хотя могут иметь разные граничные ограничения в дискретных решениях.
Почти уверен, что это ядро ​​свертки, а не FT. См., например, «настраиваемый» фильтр, который позволяет напрямую определить ядро. Все остальные фильтры просто строят для вас ядра с некоторыми удобными для человека параметрами.
@OrangeDog Я не могу этого исключить, но то, что некоторые фильтры определенно используют ядро ​​​​свертки, не означает, что все так делают. Фильтры верхних частот на основе свертки могут быть подвержены шуму, но я вижу, что здесь есть некоторые улучшения.
@ChrisH и преобразования Фурье для дискретных данных также подвержены шуму.
@OrangeDog они действительно; Я использую их все время. Какой подход хуже для шума, вероятно, зависит от характера шума и сигнала.
Конечно, для больших изображений на компьютерах свертка также намного быстрее, чем процесс FT. Это всего лишь один проход изображения, и иногда его можно выполнить на месте, не выделяя еще одну копию буфера.
@OrangeDog это, безусловно, правда.

High Pass — это фильтр повышения резкости. Можно сказать, что это смесь «обнаружения краев» и «заточки». Повышение резкости обнаруживает внезапные изменения яркости или цвета пикселей, а затем изменяет их. Таким образом, светлые части ярче, а темные темнее.

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

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