Ваши изображения могут стать лучше. Часть II. Убираем шум и «чиним» JPG
/imgs/2018/11/26/11/2550318/e42a1a7c295a43cf48b2df9f29db418b61976622.jpg)
В предыдущей статье мы говорили о нескольких способах повышения резкости ваших фотоснимков. Теперь, как мы и обещали, поднимем тему подавления цифрового шума в фотографиях.
При съёмке цифровой камерой, особенно это касается недорогих камер или камерофонов, при съёмке при плохой освещенности или на высокочувствительной плёнке на фотографиях появляется так называемый шум – примесь пикселей постороннего оттенка, рябь. Ещё одной причиной появления шума является сильное сжатие файла. Во многих случаях с шумом можно и нужно бороться.
Если снимок сделан, например, камерофоном, сложно ожидать от него сверхрезультатов, но за качество ещё можно побороться.
В таком случае нам придётся решать сразу две проблемы: убирать излишний цветовой шум и устранять проблемы, возникшие от сжатия.
Как известно, всеми любимый формат jpg, в котором очень часто и записываются снимки, особенно если вы снимали любительской камерой или телефоном, уменьшает размер графического файла за счёт сжатия с потерями.
Что же это за потери? Всё очень просто: пиксели близкого оттенка перекрашиваются в общий цвет, таким образом информация о цвете сокращается и – вуаля! – файл занимает меньше места на носителе.
Что при этом происходит? Давайте посмотрим поближе.
У нас есть вот этот снимок, он сделан камерофоном Sony Ericsson w800.
/imgs/2018/11/26/11/2550336/5679f4e586610b64f78bf9d126ab7caccd6c45eb.jpg)
Rotation of DSC00284_s
Снимок так себе, давайте увеличим его как следует.
/imgs/2018/11/26/11/2550339/a42ec5df8a7b9fa4361d41ef0c7a6a007713b2e3.jpg)
zoom1_s
Что мы видим? Мозаичную структуру из квадратов. Один такой квадрат, состоящий из нескольких пикселей, и есть элемент сжатия. На стыках этих квадратов, разумеется, возникают границы, которые нисколько не красят изображение, добавляя в него шума.
Итак, первое, что мы будем делать, – уничтожать границы.
Стираем лишние границы
Для этого нам потребуется найти и выделить начальный элемент сжатия.
- Увеличиваем фотографию, видим злополучные квадраты и выделяем любой из них.
/imgs/2018/11/26/11/2550341/d72feeb124776f8459c5c410a17fa3d088c1d621.jpg)
step1
- Создаём новый слой, жмём Ctrl+Shift+N.
Этот слой у нас пустой и прозрачный, и сейчас у нас есть выделение (наш квадрат). В этом слое применяем к выделению команду Stroke (обводка) – закладка Edit: Stroke.
/imgs/2018/11/26/11/2550347/f52189d98eec6593f976ea6f11330045f2d8567d.jpg)
stroke
Делаем обводку чёрного цвета по центру нашего выделения.
/imgs/2018/11/26/11/2550355/e60ffa5221b187af4da7d51cadfbca2c2d6520e1.jpg)
stroke2
Так выглядит наш обведённый квадратик
Теперь выключаем глаз на нижнем слое (Background), чтобы нашего фото не было видно, а квадратик оказался на девственно-чистом прозрачном фоне, выделение не отключаем.
/imgs/2018/11/26/11/2550366/dd07cced439915a479f4653c6905d1ddc3c2727c.jpg)
stroke3
Теперь из этого элемента мы будем делать паттерн для заливки: жмём Edit: Define Pattern. Присваиваем паттерну имя.
В данный момент содержимое слоя вместе с обведённым квадратиком нам больше не нужно, квадратик у нас всё ещё выделен, поэтому радостно жмём кнопку Delete – и наш второй слой снова чист.
Теперь нам нужно залить этот пустой слой сеткой, которую мы получим из только что сохранённого паттерна. Эта сетка как раз и пройдёт по границам всех квадратиков.
Мы только что нажали Delete и удалили всё из слоя, у нас по-прежнему мигает рамка выделения. Чтобы сделать Deselect, жмём Ctrl+D.
Заливаем пустой слой паттерном и делаем сетку: Edit: Fill. Здесь выбираем наш паттерн – квадратик. Жмём ОК – и получаем следующую картину: у нас есть слой с фото и слой с чёрной сеткой.
/imgs/2018/11/26/11/2550377/349a964bc8cf7d9a3f47bea7872b5aa643663078.jpg)
grid_s
В данный момент нам нужно сделать выделение, состоящее из сетки, которая и перекроет границы. Чтобы получить выделение, кликаем по слою с сеткой, удерживая кнопку Ctrl. Те, кто не ищет лёгких путей, могут проделать следующее: меню Select: Load Selection.
/imgs/2018/11/26/11/2550388/15fa2962e0101216509ed29e6a92b13472c3afd8.jpg)
load
Итак, мы получили нужный селекшн, слой с сеткой нам теперь не нужен, отключаем глаз в палитре Layers. Если не хотим оставить его на всякий случай под рукой, то удаляем.
Теперь мы можем стереть эти отвратительные лишние границы: применяем к выделению в слое с нашим фото различные варианты Blur и Blur More. Размытие по Гауссу (Gaussian Blur) лучше не делать, потому что размытие может оказаться слишком сильным и наша стека станет видимой, что ухудшит изображение. Зато мы можем несколько раз повторить действие Blur или Blur More до появления нужного результата.
/imgs/2018/11/26/11/2550396/a193f2eead9ac5c757fa8d91d88836a1f872f8ea.jpg)
bylo
Было
/imgs/2018/11/26/11/2550402/ca0ed94c9a004f220fab2d4f654d93b48586e983.jpg)
stalo
Стало
Убираем цветовой шум
Часть проблемы мы решили, вылечили сильно сжатый jpg, теперь будем избавляться от цветного шума, что лучше делать именно в каналах. И вот почему. Избавиться от шума можно размытием. Но ведь мы не хотим нарушить фокус изображения, тем более что он у нас и так не лучший в данном случае. Что вы, возможно, делали с этим раньше? Применяли ко всему изображению различные фильтры вроде Dust & Scratches, Median, Despeckle, а то и Gaussian Blur, что крайне неважно сказывалось на резкости изображения. Мы ведь не хотим потерять столько деталей.
И вот здесь нам снова приходит на помощь пространство Lab. Переводя наш файл из RGB в Lab, мы ничего не теряем в цвете, поскольку Lab может передать больше цветов, то есть цветовой охват в Lab больше. Как вы помните из предыдущей статьи, Lab состоит из трёх каналов, где вся информация о цвете содержится в каналах a (красно-зелёный) и b (жёлто-синий), а вся информация о свете и тенях, вся резкость и детали находятся в канале Lightness. То есть, размывая каналы с цветом а или b, мы ничего не теряем в деталях. Но давим при этом лишний цветовой шум. Как правило, особенно много шума содержится в синем канале RGB, то есть, размывая в Lab жёлто-синюю составляющую (канал b), мы избавляемся от шума.
/imgs/2018/11/26/11/2550426/11b3c2e12567314910137c75463f27e85ec6ca37.jpg)
rgb
Изображение в RGB
/imgs/2018/11/26/11/2550434/f575adfc17de5e1246ca11157d3a49d445076e7a.jpg)
r
Красный канал
/imgs/2018/11/26/11/2550452/734366fdc01f5e7007ee9ff99f7a06223fd4b366.jpg)
g
Зелёный канал
/imgs/2018/11/26/11/2550457/00e5383e2d2aa35d6cf70f81879471e7201bde16.jpg)
b
Больше всего шума в синем канале
/imgs/2018/11/26/11/2550533/172eb5cd2c84f877e99f4df0f0963fcf603ff2e3.jpg)
b_channel
Канал b, в котором можно подавить шум
/imgs/2018/11/26/11/2550541/de12bf4451667ad7ab2b466cb26cb5aa6d606e84.jpg)
lightness
В канале Lightness содержатся все детали
Для надёжности можете размыть и канал a. Для размытия идём в меню с каналами (Layers) и применяем Blur More к каналу b или a, выделив этот слой в палитре Layers. Смотрим на результат.
/imgs/2018/11/26/11/2550547/2c51527640d3abcac8fb51c1b35975cb6612f55b.jpg)
stalo
До подавления шума
/imgs/2018/11/26/11/2550558/ecfea73deb15416d7f7bb99bee39ccdace76914f.jpg)
stalo2
После подавления шума
Теперь повышаем резкость методами, о которых мы говорили в предыдущей статье.
Доводим фотографию до ума, настраиваем контрастность в канале Lightness, с помощью маски затемняем волосы (об этом мы поговорим в других материалах) и смотрим, что у нас с цветом лица. Лицо находится в тени, но сочетание M (magenta) и Y (yellow) вполне благополучно. О цвете лица и о том, как с ним бороться, поговорим в другой статье.
Подведём итоги:
Нам удалось очистить фото от шума и улучшить общее состояние даже этого некачественного фото, при этом мы сохранили максимум деталей.
Сравним, что бы на нашем месте сделали стандартные фильтры.
/imgs/2018/11/26/11/2550601/827e310b3004c92599c0c63aad210015c762c8a8.jpg)
podavlenie
Наш результат подавления шума с размытием каналов a и b в пространстве Lab
/imgs/2018/11/26/11/2550606/bedb18e15729dca413572783896944d65257ea40.jpg)
despeckle
Применение фильтра Despeckle
/imgs/2018/11/26/11/2550610/bb2621386974488ae23bb5df8fb7e6fe0ff91ba8.jpg)
gaussian_blur
Применение фильтра Gaussian Blur
/imgs/2018/11/26/11/2550621/b01c129233b0ea0a9667a26b953fe0ad0adbeadf.jpg)
dust_&_scratches
Применение фильтра Dust & Scratches
/imgs/2018/11/26/11/2550627/a5888d8bd4572dbc4ba00c20110eaebd216949a5.jpg)
median
Применение фильтра Median
Как видите, фильтры не дали полностью избавиться от посторонних примесей и в то же время произвели слишком сильные усреднения, приведшие к потере резкости и деталей.
Использование фильтров Photoshop ко всему изображению даёт худшие результаты, нежели размытие каналов цвета в Lab.
Продолжение в следующих статьях.
Выражаем отдельную благодарность Павлу Синякову, руководителю проекта Ferra.ru, послужившему моделью для наших упражнений.