Матовый журнал

Блог о фотографии, цветокоррекции и обработке изображений.

В чём проблема

При реставрации изображений иногда приходится убирать регулярный растр. Встроенными средствами фотошопа сделать это трудно: готовых фильтров нет, додж-н-бёрном каждую точку закрашивать неприемлемо долго, классическое частотное разложение бесполезно. Когда я стал изучать способы решить эту задачу, оказалось, что если получить спектр пространственных частот изображения, то получится удалить растр без вреда для картинки. Штатными средствами фотошопа сделать это невозможно, однако задачу решают плагины — 2D FFT/IFFT, и его модификация RGB FFT. Оба плагина раскладывают изображение в спектр и восстанавливают его обратно в изображение, однако на практике я обнаружил неудобства:

  • Когда плагины восстанавливают картинку из спектра, цвет теряется;
  • Когда плагин применяется к любому слою кроме фонового, во всех цветовых каналах после восстановления из спектра более тёмные пиксели становятся одновременно более прозрачными.

В случае с монохромными исходниками это не проблема: под слой с восстановленным изображением ложится слой Solid Color подходящего цвета с яркостью 0..30 по шкале Lab, в итоге получается монохромное изображение без растра. При этом часть градаций теряется, на что намекает гистограмма, похожая на гребёнку. В итоге плагины свою основную задачу решают, но побочные эффекты приходится знать и уметь с ними бороться.

Если исходник цветной, восстановленное изображение и слой Solid Color можно объединить в группу и задать ей режим наложения Luminosity, но это всегда меняет цвет и контрастность исходника.

Решение

Нашёл графический процессор G'MIC и основанный на нём плагин gmic_gimp для гимпа, в гимпе этот плагин восстанавливает картинку из спектра без потерь. Гонять гимп ради подавления растра мне показалось неправильной затеей, и нашлось решение: орловский инженер Сергей Щербаков написал плагин, запускающий G'MIC из фотошопа. О работе с этим плагином и расскажу.

Запускается плагин так: Filter → Other → Плагин FFT/IFFT. При первом вызове появляется окно настройки, в котором нужно указать путь к папке с G'MIC.

Чтобы получить спектр изображения, нажимают кнопку Direct (1) или клавишу 1, чтобы восстановить картинку из спектра — Inverse (2) или клавишу 2.

В отличие от остальных фильтров, этот плагин по Ctrl + F только показывает окно управления и больше ничего не делает. Нужное действие запускается вручную. В результате прямого преобразования получается полоска со спектром. Высота её равна шестикратной высоте исходника, ширина — как у исходника.

Как ни странно, такое нестандартное поведение удобно, быстро, и избавляет от ошибок — плагин управляем с клавиатуры.

Чтобы убрать растр, редактируют верхнюю шестую часть. У нормального изображения без растра нужная нам часть спектра похожа на четырёхлучевую звезду:

Это спектр... ...а это исходник

Для примера с растром я взял картинку из районной газеты.

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

Отредактированный спектр надо сохранить и обязательно закрыть. Надёжнее сделать это с клавиатуры: Ctrl + S → Ctrl + W. Потом выбрать исходник, вызвать окно плагина снова (Ctrl + F) и нажать кнопку 2. В результате в выделенный слой исходника запишется то, что плагин восстановит из спектра.

Если сохранить, но не закрыть файл со спектром, плагин аварийно завершит работу и сообщит об ошибке

Получилось почти хорошо. Остатки растра и пятна на незапечатанной части бумаги я убрал методом частотного разложения. Оставшиеся неровности тона заделал додж-н-бёрном:

Доводить до глянцевого идеала иллюстративный пример не стал — нецелесообразно.

В итоге получилось достаточно чисто.

Распространяю плагин по лицензии CC-NC-ND. Работает под Виндоуз равно с 32- и 64-битной версией Фотошопа, протестирован на версиях CC и CC2015, но должен работать и на других. Также потребуется отдельно скачать и распаковать в любую папку G'MIC для Виндоуз. Если Фотошоп при запуске скажет, что не хватает каких-то библиотек, установите Microsoft Visual C++ 2010 Redistributable Package — соответственно для x64 или x86. Плагин во время работы сохраняет временный файл на диск, для этого ему потребуется до гигабайта свободного места. Временный файл удаляется после использования. Вычисления спектра ресурсоёмки — для картинок размером более 3500 пикселей по длинной стороне нужен гигабайт свободной оперативной памяти.

Ссылки

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

Обойтись без масок помогает корректирующий слой Hue/Saturation в режиме наложения Color: фиолетовый оттенок пропадает, если у синих цветов локально сдвинуть цветовой тон в сторону голубого на +14. Маска в этом способе уже не нужна. Однако фиолетовый оттенок не проявляется в области насыщенного синего, там этот эффект устранять не нужно. Поэтому, если сдвинуть весь цветовой тон, оттенок пропадёт, но и цветопередача ухудшится. Чтобы избежать этого, нужно поставить силу воздействия слоя в зависимость от насыщенности, но без маски по насыщенности этого не сделать. Снова получается или с побочными эффектами, или некрасиво.

Если оставить режим Normal, вместе с цветовым тоном яркость синего повысится настолько, что нарушит тональное единство снимка.

Поэтому я вооружился программой 3D LUT Creator и разработал лут, который решает проблему сдвига синего в фиолетовый без настроек, лишних действий и побочных эффектов. Лут корректирует цветовой тон в зависимости от насыщенности и сохраняет тональное единство. Сила воздействия корректирующего слоя с лутом зависит от прозрачности слоя. Это само по себе наглядно и легко поддаётся автоматизации. Вот как выглядит синяя растяжка на гистограмме, вейвформе и вектороскопе:

Чем дольше я знаком с этим инструментом, тем сильнее благодарен за него разработчику Олегу Шаронову. Мне 3DLC нужен не каждый день, но когда нужен, заменить его нечем.

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

Вектороскоп показывает, что растяжка посередине голубоватая, но на глаз всё хорошо.

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

Скачать лут. Бесплатно, без СМС. Контрольная сумма архива — cf46c83004b7d6927749d53ac87a1f888ce8e63d.

SHA-1

Я предполагаю, что вам известно, зачем на снимке перекрашивать автомобиль, но неизвестно, как.

Обтравка

Способ обтравки не важен: равно годятся перо, магнитное или полигональное лассо, кисть в режиме Quick Mask и плагин Topaz Remask. Я пером владею плохо, поэтому предпочитаю обрисовать контур магнитным лассо, в режиме быстрой маски закрасить огрехи кистью и потом сгладить выделение функцией Refine Selection. Перекрашивают автомобиль корректирующие слои по маске, поэтому можно было бы просто сохранить выделение. Но автомобиль обычно глянцевый, отчего отражения частично сохраняют цвет, поэтому их целесообразно сохранить. Для этого я вынес выделенный фрагмент на отдельный слой, обесцветил и инвертировал. Получилась маска.

Перекраска

Перекрашивает автомобиль слой Solid color нужного цвета в режиме Overlay. Слой в режиме Overlay влияет на итоговую яркость изображения, поэтому яркость цвета в координатах HSB должна быть не больше 50.

Контраст отражений от автомобиля зависит от цвета, в который он окрашен. Контрастом отражений управляет слой с кривыми в режиме Luminosity и той же маской, что и слой Solid color.

Этот способ перекрашивания автомобиля быстр, прост и не заставляет прибегать к трюкам в пространстве Lab. Угадайте, какой из снимков ниже — оригинальный.

Ctrl + ↓ Ранее