Опубликовано 08 сентября 2008, 00:11

Уменьшение размеров фотографии без потери деталей

Каждый, кто когда-нибудь сохранял фотографии для Интернета, замечал такую неприятную мелочь: исходная фотография абсолютно резкая, а как только уменьшаем число пресловутых пикселей раз в десять, вся резкость сразу улетучивается. А ведь вроде бы всё должно быть наоборот – пережатая фотография должна быть полна всяких мелких деталей. Рассмотрим, почему так получается и как с этим бороться.

Казалось бы, если взять десятимегапиксельный пейзаж или портрет с нормальной резкостью и уменьшить его размер, скажем, до мегапикселя, то количество деталей должно сократиться незначительно, а из-за намного более сильного уменьшения числа пикселей относительная детализация должна только возрасти. Но не тут-то было. Как ни странно, изменение размеров изображения – не такая простая задача, как кажется на первый взгляд. И дело вовсе не в сложности реализации какого-либо алгоритма, вовсе нет. Сложность прежде всего в том, что невозможно такой универсальный алгоритм придумать в принципе.

Рассмотрим простейший пример – чёрно-белое изображение шахматной доски размером 8х8 пикселей. Нам необходимо уменьшить размер картинки до 4х4 пикселя. Что мы получим в итоге? В результате такого преобразования у нас будет вместо кучи деталей одна сплошная серая масса, и ничего с этим поделать нельзя. А ведь это лишь простейший случай уменьшения размеров в 2 раза!

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

foto_girl

Ресайз фотографий

foto_girl

Ресайз фотографий

Ресайз в ACDSee

Самый простой и достаточно качественный способ уменьшить размер картинки – воспользоваться распространённой программой для просмотра изображений ACDSee. Рассмотрим, как можно это сделать в ACDSee 10.0.

acd_see

Ресайз в ACDSee 10.0

acd_see

Ресайз в ACDSee 10.0

Запускаем ACDSee и отрываем в программе нужную фотографию. После этого кликаем правой кнопкой мыши и выбираем в появившемся меню Edit -> Edit Mode (для русифицированной версии: Правка-> Режим редактирования). Перед нами появляется панель для редактирования изображения. Нажимаем на Resize (Изменить размер). Теперь мы меняем размер изображения: можно указать новый размер в пикселях, в процентах от оригинала и в сантиметрах или дюймах. При ресайзе фотографий обязательно убедитесь в том, что выставлен масштаб просмотра 100%, – это позволит контролировать конечный результат. В панели фильтра изменения размера должен быть выставлен алгоритм Lanczos – он показывает наилучшие результаты для большинства фотографий. Конечно, никто не запрещает экспериментировать – можно указать другой алгоритм ресайза, благо в ACDSee их немало.

2008-07-02_105911

Выбор режима редактирования

2008-07-02_105911

Выбор режима редактирования

2008-07-02_110134

Панель правки

2008-07-02_110134

Панель правки

2008-07-02_110155

Изменение размера

2008-07-02_110155

Изменение размера

Ступенчатый ресайз в Photoshop

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

Рассмотрим этот алгоритм.

Шаг №1: Загрузка изображения и подготовка его к редактированию

  1. Запускаем Photoshop и открываем фотографию. Открываем вкладку Image -> Mode и отмечаем галочкой Lab Color вместо стандартного RGB.
photoshop0

Изображение в Photoshop

photoshop0

Изображение в Photoshop

lab

Выбор пространства Lab

lab

Выбор пространства Lab

Благодаря такому преобразованию изображения при повышении резкости не будут возникать цветовые ореолы на контрастных границах деталей.

Дело в том, что при представлении фотографии в режиме RGB за каждый пиксель изображения отвечают три числа: одно обозначает яркость красного, другое – яркость синего, третье – яркость зелёного цвета. То есть у нас есть как бы не одно изображение, а целых три. И увеличиваем резкость мы для каждого канала в отдельности – так уж устроен фильтр Unsharp Mask. При повышении резкости в RGB мы влияем не только на резкость, но и на цвет – ведь при увеличении чёткости фактически изменяется красный, синий и зелёный каналы в отдельности, и от этого возникают цветные ореолы.

А вот Lab Color – другое дело. В цветовом пространстве Lab изображение состоит из трёх каналов – два несут в себе информацию о цвете фотографии, а третий содержит информацию о яркости. И поэтому при повышении резкости только в канале яркости Lightness цветные ореолы не появятся.

  1. Делаем активным канал Lightness во вкладке Channels. Остальные каналы необходимо сделать видимыми для просмотра результата повышения резкости.
lightness

Активизируем
яркостный канал

lightness

Активизируем яркостный канал

  1. Перед повышением резкости изменим размер изображения. Для этого открываем окно Image -> Image Size. В поле Width указываем учетверённое значение той ширины изображения (в пикселях), которую хотим получить в конечном счёте.
image_size1

Изменение размеров изображения

image_size1

Изменение размеров изображения

image_size2

Изменение размеров изображения

image_size2

Изменение размеров изображения

Шаг №2: Повышение резкости и уменьшение изображения

Для эффективного повышения резкости необходимо разобраться с принципом действия фильтра Unsharp Mask. Конечно же, можно было бы сразу записать конкретные настройки для этого фильтра, но это будет не всегда эффективно, а в некоторых случаях даже губительно для фотографии. Просто есть огромное количество факторов, влияющих на выбор тех или иных значений установок фильтра, – для каждой фотографии нужны индивидуальные настройки Unsharp Mask.

Итак, что же значит «резкое изображение»? Резкость – это чёткие границы между деталями. То есть если граница контрастная и чётко выражена, то картинка выглядит резкой. Именно на таком оптическом обмане и основано действие фильтра для повышения резкости Unsharp Mask – этот фильтр увеличивает локальный контраст на границе деталей, что выглядит как повышение резкости. И именно из-за увеличения локального контраста при злоупотреблении фильтром у предметов возникают неприятные белые окантовки.

unsharp_mask

Фильтр Unsharp Mask

unsharp_mask

Фильтр Unsharp Mask

Рассмотрим настройки фильтра Unsharp Mask. У фильтра есть три ползунка: Amount, Radius и Threshold. Amount влияет на силу воздействия фильтра, Radius – на ширину ореола, Threshold задаёт порог для действия фильтра Unsharp Mask. Порогу Threshold стоит уделить особое внимание. При нулевом значении для Threshold фильтр Unsharp Mask может подчёркивать шумы изображения и различные нежелательные детали изображения.

Теперь наконец приступим к обработке фотографии. Первым делом мы дублируем слой при помощи комбинации Ctrl+J. Далее делаем активным канал Lightness во вкладке Channels.

Первое повышение резкости

Приступаем к первому повышению резкости. Для этого выбираем Filter -> Sharpen -> Unsharp Mask. Значение Radius должно быть примерно от 0.8. При выставлении параметра Radius обращаем внимание на сюжетно важные детали (для портрета это будут глаза, для пейзажа – листва и камни) – фильтр должен подчёркивать нужные нам элементы. Если же Unsharp Mask не повышает резкость сюжетно важных деталей, это свидетельствует о необходимости увеличить Radius – такие действия даже позволяют слегка исправить промашку автофокуса, так как в некоторой мере при помощи Radius мы влияем на глубину резкости.

Второй важный параметр – Threshold. Его необходимо подобрать так, чтобы Unsharp Mask не подчёркивал шумы. Обычные значения при повышении резкости для Threshold – 6-8.

И третьим мы выставим Amount, влияющий на силу воздействия фильтра Unsharp Mask. Необходимые значения для Amount зависят от конкретных изображений и колеблются в очень широких пределах – то 70 до 180.

Далее уменьшаем фотографию при помощи Image -> Image size. В поле Width задаём 50 процентов и нажимаем OK.

Второе повышение резкости

Выбираем Filter -> Sharpen -> Unsharp Mask. Значение Radius должно быть в два раза меньше по сравнению с первичным повышением резкости. При выставлении параметра Radius снова обращаем внимание на сюжетно важные детали – фильтр их должен подчёркивать. Threshold оставляем неизменным, Amount немного уменьшаем. И опять фотографию делаем в 2 раза меньше при помощи Image -> Image size (в поле Width пишем 50 процентов и нажимаем OK).

Финальное повышение резкости

И теперь – последнее повышение резкости: Filter -> Sharpen -> Unsharp Mask, значение Radius – 0.2 или 0.3, Threshold делаем нулевым, Amount увеличиваем до необходимого значения.

Вот и всё. Остаётся только перевести изображение из Lab в RGB (Image -> Mode -> RGB Color) и сохранить уменьшенную фотографию. В результате применения такого ступенчатого ресайза улучшается контроль над шумами и появляется даже некоторый контроль над глубиной резкости по сравнению с однократным уменьшением фотографии до нужных размеров.