Ваши изображения могут стать лучше. Часть II. Убираем шум и «чиним» JPG
В предыдущей статье мы говорили о нескольких способах повышения резкости ваших фотоснимков. Теперь, как мы и обещали, поднимем тему подавления цифрового шума в фотографиях.
При съёмке цифровой камерой, особенно это касается недорогих камер или камерофонов, при съёмке при плохой освещенности или на высокочувствительной плёнке на фотографиях появляется так называемый шум – примесь пикселей постороннего оттенка, рябь. Ещё одной причиной появления шума является сильное сжатие файла. Во многих случаях с шумом можно и нужно бороться.
Если снимок сделан, например, камерофоном, сложно ожидать от него сверхрезультатов, но за качество ещё можно побороться.
В таком случае нам придётся решать сразу две проблемы: убирать излишний цветовой шум и устранять проблемы, возникшие от сжатия.
Как известно, всеми любимый формат jpg, в котором очень часто и записываются снимки, особенно если вы снимали любительской камерой или телефоном, уменьшает размер графического файла за счёт сжатия с потерями.
Что же это за потери? Всё очень просто: пиксели близкого оттенка перекрашиваются в общий цвет, таким образом информация о цвете сокращается и – вуаля! – файл занимает меньше места на носителе.
Что при этом происходит? Давайте посмотрим поближе.
У нас есть вот этот снимок, он сделан камерофоном Sony Ericsson w800.
Снимок так себе, давайте увеличим его как следует.
Что мы видим? Мозаичную структуру из квадратов. Один такой квадрат, состоящий из нескольких пикселей, и есть элемент сжатия. На стыках этих квадратов, разумеется, возникают границы, которые нисколько не красят изображение, добавляя в него шума.
Итак, первое, что мы будем делать, – уничтожать границы.
Стираем лишние границы
Для этого нам потребуется найти и выделить начальный элемент сжатия.
- Увеличиваем фотографию, видим злополучные квадраты и выделяем любой из них.
- Создаём новый слой, жмём Ctrl+Shift+N.
Этот слой у нас пустой и прозрачный, и сейчас у нас есть выделение (наш квадрат). В этом слое применяем к выделению команду Stroke (обводка) – закладка Edit: Stroke.
Делаем обводку чёрного цвета по центру нашего выделения.
Теперь выключаем глаз на нижнем слое (Background), чтобы нашего фото не было видно, а квадратик оказался на девственно-чистом прозрачном фоне, выделение не отключаем.
Теперь из этого элемента мы будем делать паттерн для заливки: жмём Edit: Define Pattern. Присваиваем паттерну имя.
В данный момент содержимое слоя вместе с обведённым квадратиком нам больше не нужно, квадратик у нас всё ещё выделен, поэтому радостно жмём кнопку Delete – и наш второй слой снова чист.
Теперь нам нужно залить этот пустой слой сеткой, которую мы получим из только что сохранённого паттерна. Эта сетка как раз и пройдёт по границам всех квадратиков.
Мы только что нажали Delete и удалили всё из слоя, у нас по-прежнему мигает рамка выделения. Чтобы сделать Deselect, жмём Ctrl+D.
Заливаем пустой слой паттерном и делаем сетку: Edit: Fill. Здесь выбираем наш паттерн – квадратик. Жмём ОК – и получаем следующую картину: у нас есть слой с фото и слой с чёрной сеткой.
В данный момент нам нужно сделать выделение, состоящее из сетки, которая и перекроет границы. Чтобы получить выделение, кликаем по слою с сеткой, удерживая кнопку Ctrl. Те, кто не ищет лёгких путей, могут проделать следующее: меню Select: Load Selection.
Итак, мы получили нужный селекшн, слой с сеткой нам теперь не нужен, отключаем глаз в палитре Layers. Если не хотим оставить его на всякий случай под рукой, то удаляем.
Теперь мы можем стереть эти отвратительные лишние границы: применяем к выделению в слое с нашим фото различные варианты Blur и Blur More. Размытие по Гауссу (Gaussian Blur) лучше не делать, потому что размытие может оказаться слишком сильным и наша стека станет видимой, что ухудшит изображение. Зато мы можем несколько раз повторить действие Blur или Blur More до появления нужного результата.
Убираем цветовой шум
Часть проблемы мы решили, вылечили сильно сжатый jpg, теперь будем избавляться от цветного шума, что лучше делать именно в каналах. И вот почему. Избавиться от шума можно размытием. Но ведь мы не хотим нарушить фокус изображения, тем более что он у нас и так не лучший в данном случае. Что вы, возможно, делали с этим раньше? Применяли ко всему изображению различные фильтры вроде Dust & Scratches, Median, Despeckle, а то и Gaussian Blur, что крайне неважно сказывалось на резкости изображения. Мы ведь не хотим потерять столько деталей.
И вот здесь нам снова приходит на помощь пространство Lab. Переводя наш файл из RGB в Lab, мы ничего не теряем в цвете, поскольку Lab может передать больше цветов, то есть цветовой охват в Lab больше. Как вы помните из предыдущей статьи, Lab состоит из трёх каналов, где вся информация о цвете содержится в каналах a (красно-зелёный) и b (жёлто-синий), а вся информация о свете и тенях, вся резкость и детали находятся в канале Lightness. То есть, размывая каналы с цветом а или b, мы ничего не теряем в деталях. Но давим при этом лишний цветовой шум. Как правило, особенно много шума содержится в синем канале RGB, то есть, размывая в Lab жёлто-синюю составляющую (канал b), мы избавляемся от шума.
Для надёжности можете размыть и канал a. Для размытия идём в меню с каналами (Layers) и применяем Blur More к каналу b или a, выделив этот слой в палитре Layers. Смотрим на результат.
Теперь повышаем резкость методами, о которых мы говорили в предыдущей статье.
Доводим фотографию до ума, настраиваем контрастность в канале Lightness, с помощью маски затемняем волосы (об этом мы поговорим в других материалах) и смотрим, что у нас с цветом лица. Лицо находится в тени, но сочетание M (magenta) и Y (yellow) вполне благополучно. О цвете лица и о том, как с ним бороться, поговорим в другой статье.
Подведём итоги:
Нам удалось очистить фото от шума и улучшить общее состояние даже этого некачественного фото, при этом мы сохранили максимум деталей.
Сравним, что бы на нашем месте сделали стандартные фильтры.
Как видите, фильтры не дали полностью избавиться от посторонних примесей и в то же время произвели слишком сильные усреднения, приведшие к потере резкости и деталей.
Использование фильтров Photoshop ко всему изображению даёт худшие результаты, нежели размытие каналов цвета в Lab.
Продолжение в следующих статьях.
Выражаем отдельную благодарность Павлу Синякову, руководителю проекта Ferra.ru, послужившему моделью для наших упражнений.