#апскейл #туториал #обработкасигналов #photoshop #tutorial Хочу поделиться своим методом масштабирования (увеличения) растровых изображений, который может давать более предпочтительные результаты в сравнении с обычным способом, а заодно дам теоретическое обоснование и расскажу про пару хитростей в работе с изображениями в целом. Для примера рассмотрим растягивание фотографии в четыре раза в Photoshop. Для этого проделаем следующее: 1. Будем работать в линейном цветовом пространстве, чтобы точно передать значения полутонов. Поэтому переходим в режим RGB с 16 битами на канал (Image > Mode) и конвертируем всё в цветовой профиль с линейной передаточной функцией (Edit > Convert to Profile...). Если у вас нет профиля Linear sRGB, его легко создать на базе обычного sRGB, просто подставив в диалоге Custom RGB значение гаммы 1.0, как на скриншоте. 2. Ресайзим картинку до 400 % от первоначального размера по горизонтали и вертикали. Так как у нас будет собственный фильтр, в качестве метода интерполяции обязательно ставим Nearest Neighbor. Можно подставить другие размеры, но рекомендуется увеличивать в целое число раз. 3. Применяем фильтр гауссова размытия с радиусом 2.0 (т.е ровно в половину от размера получившихся пикселей). Так как гауссова функция является положительной на всей определяемой области, такой фильтр, сглаживая видимые глазом «ступеньки», не будет порождать артефактов «звона», которые при близком рассмотрении выглядят отвратительно. Это выгодно отличает его, например, от бикубической интерполяции. Уникальность гауссовой функции как импульсной характеристики в том, что её частотный спектр сам является гауссовой функцией, что означает идеальный баланс: мы эффективно фильтруем нижние частоты, не распространяя при этом сигнал слишком далеко в пространстве или времени. 4. Дабы немного облагородить детали, можно применить фильтр Noise > Median с радиусом в те же 2 пикселя, после чего Sharpen > Unsharp Mask с радиусом 1.0 и интенсивностью около 100 %. 5. Конвертируем фото обратно в профиль sRGB (или в ваш рабочий профиль), после чего картинку уже можно квантовать в 8 бит на канал. Любуемся результатами. Изображение должно выглядеть естественно, не агрессивно масштабированным на компьютере, а будто снятым немного не в фокусе. Теперь его можно уменьшить до необходимых размеров с применением простой билинейной фильтрации. Применение этого метода возможно и без перехода в линейное цветовое пространство, однако для изображений с резкими линиями результат окажется заметно хуже. Как вариант, вместо размытия по Гауссу возможно применить эффект боке (Field Blur) размером в 4 пикселя, результаты окажутся очень схожи. Прилагаю описанные манипуляции в виде маленького макроса для Photoshop. Работает в версии CS6, должно и в последующих. Слева для примера мой результат, справа увеличенный штатными средствами Photoshop (Bicubic Automatic). Можно заметить, что моя обработка выглядит мягче, но куда естественнее и приятнее глазу благодаря отсутствию богомерзких ореолов (если конечно не пытаться масштабировать пиксель-арт!). Данный способ теоретически позволяет получить максимальное качество, не обращаясь к сложным и громоздким моделям, основанным на машинном обучении. Подобный фильтр я использую в звуковом движке NIPSYS64 для качественного и при этом быстрого микширования множества звуков с произвольной частотой дискретизации, как альтернативу более ресурсозатратному sinc-фильтру. Картинки взяты с https://r0k.us/graphics/kodak/

Теги:

Теги других блогов: