Изменение размера изображения для Web и Email
Чтобы опубликовать цифровые фото на сайте или поделиться ими по email, размер изображения обычно меняют. В частности, для показа на сайте важно сохранить бездефектную резкость в уменьшенном изображении — и это может оказаться непростой задачей. В отличие от увеличения фото, когда проблемой становятся выпирающие границы, уменьшение приводит к противоположному дефекту перехода: муару. Распространение муара существенно зависит от используемого интерполятора, хотя некоторые изображения подвержены ему гораздо сильнее прочих. Эта глава сравнивает различные подходы к уменьшению изображений для web и email и даёт рекомендации на основе их результатов.
Фон: дефекты муара
Муар — это один из типов ступенчатого дефекта, который может проявиться при уменьшении изображения. Его можно заметить в изображениях с мелкой текстурой, которая приближается к пределу разрешения. Такая текстура при уменьшении размера выходит за пределы разрешения, так что в изображении от неё остаются только выборочно повторяющиеся следы:
Оригинал | ||
Масштаб 50% | ||
Масштаб 50% при увеличении до 200% |
Заметьте, что получившийся рисунок не имеет физического смысла, поскольку полученные линии не коррелируют с кладкой кирпича. Изображения с мелкими геометрическими узорами подвергаются наибольшему риску; в их число входит черепица на крышах, кирпичи и изделия из дерева, сплетения проводов и другие.
Сглаживание, вызванное масштабированием
Вдобавок к дефектам муара, масштабированное изображение может также стать значительно менее резким. Алгоритмы интерполяции, которые лучше сохраняют резкость, одновременно больше подвержены муару, тогда как те, которые исключают муар, обычно дают более мягкий результат. К сожалению, такого компромисса при масштабировании избежать невозможно.
Оригинал | Размытие при изменении размера |
Один из наилучших способов бороться с этим — это применить сразу после масштабирования маску нерезкости — даже если оригинал уже подвергался повышению резкости. Наведите курсор на вышеприведенный снимок, чтобы увидеть, как это может восстановить утраченную резкость.
Сравнение методов интерполяции
В качестве примера: когда изображение уменьшено вдвое относительно исходного размера, уже невозможно воспроизвести деталь, которая занимала единственный пиксель. Если деталь наблюдается, она ненастоящая и, скорее всего, является дефектом интерполяции.
Оригинал | Усреднение в серый |
Для оценки максимального разрешения и степени муара, которые каждый из интерполяторов производит в результате уменьшения размера изображения, был разработан тест с использованием вышеприведенной концепции. Он проверяет эти дефекты для типичного сценария: уменьшение размера изображения, полученного цифровой камерой, до более подходящего для web и email разрешения в четверть от исходного размера (25%).
Нижеприведенное тестовое изображение было разработано таким образом, чтобы разрешение полос прогрессивно нарастало с удалением от центра изображения. При уменьшении размера изображения все полосы на определённой дистанции от центра должны быть более неразличимы. Интерполяторы, которые показывают детали до предела разрешающей способности (отмечен красным квардратом), максимально их сохраняют, тогда как интерполяторы, которые якобы показывают детали за пределами разрешающей способности, вносят в изображение рисунок, которого в нём исходно не было (муар).
1. Метод ближайшего соседа | |||
2. Билинейный | |||
3. Бикубический** | |||
4. Sinc | |||
5. Метод Ланцоша | |||
6. Бикубический, с предразмытием 1пкс | |||
7. Предыдущий, с повышением резкости | |||
8. Подлинные фракталы | |||
Показать предел? да нет | Тестовое изображение* |
* Показанное тестовое изображение было изменено для целей просмотра;
его полный размер составляет 800×800 пикселей, и полосы достигают
максимального разрешения при этом размере.
** Бикубический алгоритм используется по умолчанию в Adobe Photoshop CS и CS2
Тестовая диаграмма изготовлена на бумаге BBC и впервые реализована на сайте
www.worldserver.com/turk/opensource/
все диаграммы и показанный выше код подготовлены с использованием Matlab.
Алгоритмы кардинального синуса (Sinc) и Ланцоша показывают наилучшие результаты; они способны разрешать детали вплоть до теоретического предела (отмечен красным), сохраняя наименьшее число дефектов за ним. Следом идёт бикубическая интерполяция в Photoshop, которая показывает видимый рисунок муара далеко за пределом разрешения. Обратите также внимание на то, что бикубический алгоритм сохраняет меньше деталей и контраста в пределах разрешающей способности. Варианты бикубического алгоритма с предразмытием и последующим повышением резкости (6 и 7) рассматриваются ниже. Метод подлинных фракталов версии 4.0 был добавлен для сравнения, хотя он плохо работает на уменьшении размера (он для этого не предназначен). Так выявилось ключевое различие: некоторые алгоритмы интерполяции намного более хороши в увеличении, чем в уменьшении размера изображения, и наоборот.
Техническое примечание: алгоритмы интерполяции варьируются в зависимости от используемых программ, даже если алгоритм одинаково называется. Sinc-интерполяция, к примеру, имеет варианты, которые принимают во внимание от 256 до 1024 и более смежных пикселей. Это может быть явно указано в программе, а может и не быть. Более того, программы могут варьироваться по соотношению веса близлежащих и отдалённых пикселей в своих расчётах, как это часто бывает с бикубической интерполяцией.
Предразмытие для минимизации муара
Один из подходов, который может улучшить результаты в проблемных изображениях — это применить к изображению минимальное размытие перед уменьшением. Это позволит вам исключить любые детали, которые невозможны для выбранного разрешения. Если дефектов, вызванных муаром, не наблюдается, применять предразмытие нет нужды.
Поскольку изображение уменьшено до четверти от исходного размера, любые рисунки размером менее 4 пикселей не могут быть разрешены. Для предразмытия можно было бы использовать радиус 2 пикселя(и в результате диаметр 4 пикселя), однако чтобы практически исключить дефекты за пределом разрешения, хватило и 1 пикселя. Чрезмерное предразмытие может привести к потере резкости в итоговом изображении.
Предразмытие изображения (6) исключает большую часть муара (заметного в 3), хотя для восстановления резкости в деталях в пределах разрешения требуется дополнительно повышение резкости (сделано для 7). После предразмытия и повышения резкости бикубический алгоритм Фотошопа выдаёт результат, близкий к более комплексным алгоритмам кардинального синуса и Ланцоша.
Photoshop: резкий и мягкий бикубический алгоритм
Adobe Photoshop версии CS (8.0) и выше в действительности имеет три варианта бикубической интерполяции: мягкий, средний (базовый) и резкий. Все три варианта покажут результаты, аналогичные варианту 3 в сравнении интерполяторов, но с разной степенью резкости. Соответственно, если в вашем изображении есть муар, резкий вариант усилит его, а мягкий ослабит (относительно базового).
Бикубический метод: | ||
Оригинал | мягкий/ резкий |
Многие рекомендуют для увеличения использовать мягкий вариант, а для уменьшения резкий. Это работает неплохо, но я предпочитаю для уменьшения использовать стандартный вариант — оставляя себе большую гибкость в применении повышения резкости впоследствии, если изображение того требует. Многим встроенное повышение резкости в резком варианте бикубика покажется слишком сильным и жёстким для большинства изображений, но в действительности это предмет личных предпочтений.
Рекомендации
Весь этот анализ имел целью объяснить, что происходит, когда дела идут плохо. Если масштабирование не вносит дефектов, возможно, ничего менять не нужно, обработка фотографий и без того может быть достаточно сложной. На многих фото нет деталей, которые подвержены муару — вне зависимости от интерполяции. С другой стороны, если дела идут плохо, вы можете понять, почему, — и что можно сделать, чтобы исправить положение.
Идеальным решением является применение алгоритмов Ланцоша или кардинального синуса, чтобы исключить в уменьшенном изображении появление муара, после чего наложить маску нерезкости малого радиуса (0.2-0.3), чтобы исправить вызванное интерполяцией смягчение. С другой стороны, sinc-функция не слишком широко поддерживается, а программы, в которых она доступна, зачастую не настолько дружественны к пользователю. Любопытно, что в популярном бесплатном пакете GIMP интерполяция sinc-функцией может дать муар в тех изображениях, где бикубик его не даёт.
В качестве альтернативы можно использовать бикубическую интерполяцию с предразмытием проблемных изображений и последующим повышением резкости после уменьшения размера. Предразмытие подготовит изображение к интерполяции способом, который минимизирует ступенчатые дефекты. Основной недостаток такого подхода в том, что требуемый радиус размытия зависит от степени уменьшения размера — соответственно, для каждого случая его надо подбирать отдельно.
Оригинал графики | Без сглаживания |
Наконец, вы можете убедиться в том, что не вносите никакого сглаживания при обработке компьютерной графики алгоритмом ближайшего соседа. Однако будьте внимательны при обработке изображений с мелкодетальной текстурой, поскольку этот алгоритм наиболее подвержен дефекту муара.