Программы для увеличения размеров цифрового изображения. Быстрый метод масштабирования цветных изображений. Описание типа преобразований

Простой ответ на ваш вопрос: "Да, есть алгоритмы, но ни один из них не очень хорош". Как вы упомянули в вопросе, ограничивающим фактором является необходимость изобретать пиксели, чтобы увеличить разрешение за небольшую величину. (Вот почему вы не можете прочитать номер номерного знака от отражения в чьих-то очках от фотографии, снятой с камеры видеонаблюдения, как это происходит в CSI: Miami.)

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

Добавление к предыдущим ответам: обратите внимание, что ответ на ваш вопрос во многом зависит от того, что именно вы подразумеваете под разрешением - устройства отображения, устройства захвата или устройства просмотра (т.е. человеческого глаза). Я предполагаю, что вы говорите о растровых изображениях (проблема не будет существовать для векторных изображений.)

Вы должны признать, что снимок, сделанный с более высоким разрешением, будет содержать больше информации об изображении (то есть детали), чем изображение той же сцены, сделанное с более низким разрешением. Невозможно добавить эту информацию из воздуха. Алгоритмы масштабирования синтезируют некоторую информацию на основе предположения о непрерывности между элементами дискретного растрового изображения. Эта "новая" информация на самом деле не нова, но получена из ранее существовавшей информации о снимке, поэтому нельзя считать, что она имеет 100% вероятность совпадения исходной сцены. Более эффективные алгоритмы могут давать лучшие вероятности, но их результаты всегда будут иметь вероятность совпадения менее 1.

Один из способов увеличить разрешение - сделать несколько снимков, увеличить их до 4x ареалов (2x линейных в обоих направлениях) и использовать программное обеспечение стекирования для объединения изображений. Окончательное изображение будет лучше, чем любой из оригиналов.

Увеличение изображений рискованно. Вне определенной точки увеличение изображений - это безумное поручение; вы не можете магически синтезировать бесконечное количество новых пикселей из воздуха. И интерполированные пиксели никогда не бывают хорошими, как реальные пиксели. Вот почему это более чем искусственно, чтобы увеличить изображение Лены на 512x512 на 500%. Было бы разумнее найти более развернутое сканирование или изображение того, что вам нужно *, чем было бы увеличить его в программном обеспечении.

В некоторых случаях могут помочь алгоритмы с высоким разрешением. Я не знаю все, что связано (требуются мягкие/аппаратные и исходные изображения), но если вас интересует, есть некоторые ссылки:

Вы можете прорисовать изображение с помощью инструментов, таких как autotrace или potrace, и использовать его в любом разрешении. Но это вычислительно дорого, поэтому вы получаете изображение с несколькими цветами/функциями и даже меньше, если вам нужно быстро работать на нем.

Если вам нужно сделать это алгоритмически, ознакомьтесь с ссылкой Image Scaling , предложенной Draemon. На какой платформе вы будете делать эти интерполяции? В большинстве графических библиотек будет реализовано множество подходов, позволяющих сбалансировать скорость и качество.

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

Вообще, это было вступлением к другой статье, но оно затянулось и вылилось в отдельный материал.

Этот человек сидит среди ромашек, чтобы привлечь ваше внимание к статье.

Для наглядного сравнения я буду использовать изображения одинакового разрешения 1920×1280 (одно , второе), которые буду приводить к размерам 330×220, 1067×667 и 4800×3200. Под иллюстрациями будет написано, сколько миллисекунд занял ресайз в то или иное разрешение. Цифры приведены лишь для понимания сложности алгоритма, поэтому конкретное железо или ПО, на котором они получены, не так важно.

Ближайший сосед (Nearest neighbor)

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

Вообще, качество и производительность любого метода уменьшения можно оценить по отношению количества пикселей, участвовавших в формировании конечного изображения, к числу пикселей в исходном изображении. Чем больше это отношение, тем скорее всего алгоритм качественнее и медленнее. Отношение, равное одному, означает что как минимум каждый пиксель исходного изображения сделал свой вклад в конечное. Но для продвинутых методов оно может быть и больше одного. Дак вот, если например мы уменьшаем изображение методом ближайшего соседа в 3 раза по каждой стороне, то это соотношение равно 1/9. Т.е. большая часть исходных пикселей никак не учитывается.




1920×1280 → 330×220 = 0,12 ms
1920×1280 → 1067×667 = 1,86 ms

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

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

Аффинные преобразования (Affine transformations)

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

Принцип действия заключается в том, что для каждой точки конечного изображения берется фиксированный набор точек исходного и интерполируется в соответствии с их взаимным положением и выбранным фильтром. Количество точек тоже зависит от фильтра. Для билинейной интерполяции берется 2x2 исходных пикселя, для бикубической 4x4. Такой метод дает гладкое изображение при увеличении, но при уменьшении результат очень похож на ближайшего соседа. Смотрите сами: теоретически, при бикубическом фильтре и уменьшении в 3 раза отношение обработанных пикселей к исходным равно 4² / 3² = 1,78. На практике результат значительно хуже т.к. в существующих реализациях окно фильтра и функция интерполяции не масштабируются в соответствии с масштабом изображения, и пиксели ближе к краю окна берутся с отрицательными коэффициентами (в соответствии с функцией), т.е. не вносят полезный вклад в конечное изображение. В результате изображение, уменьшенное с бикубическим фильтром, отличается от изображения, уменьшенного с билинейным, только тем, что оно еще более четкое. Ну а для билинейного фильтра и уменьшения в три раза отношение обработанных пикселей к исходным равно 2² / 3² = 0.44, что принципиально не отличается от ближайшего соседа. Фактически, аффинные преобразования нельзя использовать для уменьшения более чем в 2 раза. И даже при уменьшении до двух раз они дают заметные эффекты лесенки для линий.

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




1920×1280 → 330×220 = 6.13 ms
1920×1280 → 1067×667 = 17.7 ms
1920×1280 → 4800×3200 = 869 ms

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

Мое скромное мнение, что использование этого способа для произвольного уменьшения изображений попросту является багом , потому что результат получается очень плохой и похож на ближайшего соседа, а ресурсов на этот метод нужно значительно больше. Тем не менее, этот метод нашел широкое применение в программах и библиотеках. Самое удивительное, что этот способ используется во всех браузерах для метода канвы drawImage() (наглядный пример), хотя для простого отображения картинок в элементе используются более аккуратные методы (кроме IE, в нем для обоих случаев используются аффинные преобразования). Помимо этого, такой метод используется в OpenCV, текущей версии питоновской библиотеки Pillow (об этом я надеюсь написать отдельно), в Paint.NET.

Кроме того, именно этот метод используется видеокартами для отрисовки трехмерных сцен. Но разница в том, что видеокарты для каждой текстуры заранее подготавливают набор уменьшенных версий (mip-уровней), и для окончательной отрисовки выбирается уровень с таким разрешением, чтобы уменьшение текстуры было не более двух раз. Кроме этого, для устранения резкого скачка при смене mip-уровня (когда текстурированный объект приближается или отдаляется), используется линейная интерполяция между соседними mip-уровнями (это уже трилинейная фильтрация). Таким образом для отрисовки каждого пикселя трехмерного объекта нужно интерполировать между 2³ пикселями. Это дает приемлемый для быстро движущейся картинки результат за время, линейное относительно конечного разрешения.

Суперсемплинг (Supersampling)

С помощью этого метода создаются те самые mip-уровни, с помощью него (если сильно упростить) работает полноэкранное сглаживание в играх. Его суть в разбиении исходного изображения по сетке пикселей конечного и складывании всех исходных пикселей, приходящихся на каждый пиксель конечного в соответствии с площадью, попавшей под конечный пиксель. При использовании этого метода для увеличения, на каждый пиксель конечного изображения приходится ровно один пиксель исходного. Поэтому результат для увеличения равен ближайшему соседу.

Можно выделить два подвида этого метода: с округлением границ пикселей до ближайшего целого числа пикселей и без. В первом случае алгоритм становится малопригодным для масштабирования меньше чем в 3 раза, потому что на какой-нибудь один конечный пиксель может приходиться один исходный, а на соседний - четыре (2x2), что приводит к диспропорции на локальном уровне. В то же время алгоритм с округлением очевидно можно использовать в случаях, когда размер исходного изображения кратен размеру конечного, или масштаб уменьшения достаточно мал (версии разрешением 330×220 почти не отличаются). Отношение обработанных пикселей к исходным при округлении границ всегда равно единице.




1920×1280 → 330×220 = 7 ms
1920×1280 → 1067×667 = 15 ms
1920×1280 → 4800×3200 = 22,5 ms

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




1920×1280 → 330×220 = 19 ms
1920×1280 → 1067×667 = 45 ms
1920×1280 → 4800×3200 = 112 ms

Производительность этого метода для уменьшения ниже, чем у аффинных преобразований, потому что в расчете конечного изображения участвуют все пиксели исходного. Версия с округлением до ближайших границ обычно быстрее в несколько раз. Также возможно создать отдельные версии для масштабирования в фиксированное количество раз (например, уменьшение в 2 раза), которые будут еще быстрее.

Данный метод используется в функции gdImageCopyResampled() библиотеки GD, входящей в состав PHP, есть в OpenCV (флаг INTER_AREA), Intel IPP, AMD Framewave. Примерно по такому же принципу работает libjpeg, когда открывает изображения в уменьшенном в несколько раз виде. Последнее позволяет многим приложениям открывать изображения JPEG заранее уменьшенными в несколько раз без особых накладных расходов (на практике libjpeg открывает уменьшенные изображения даже немного быстрее полноразмерных), а затем применять другие методы для ресайза до точных размеров. Например, если нужно отресайзить JPEG разрешением 1920×1280 в разрешение 330×220, можно открыть оригинальное изображение в разрешении 480×320, а затем уменьшить его до нужных 330×220.

Свертки (Convolution)

Этот метод похож на аффинные преобразования тем, что используются фильтры, но имеет не фиксированное окно, а окно, пропорциональное масштабу. Например, если размер окна фильтра равен 6, а размер изображения уменьшается в 2,5 раза, то в формировании каждого пикселя конечного изображения принимает участие (2,5 * 6)² = 225 пикселей, что гораздо больше, чем в случае суперсемплинга (от 9 до 16). К счастью, свертки можно считать в 2 прохода, сначала в одну сторону, потом в другую, поэтому алгоритмическая сложность расчета каждого пикселя равна не 225, а всего (2,5 * 6) * 2 = 30. Вклад каждого исходного пикселя в конечный как раз определяется фильтром. Отношение обработанных пикселей к исходным целиком определяется размером окна фильтра и равно его квадрату. Т.е. для билинейного фильтра это отношение будет 4, для бикубического 16, для Ланцоша 36. Алгоритм прекрасно работает как для уменьшения, так и для увеличения.




1920×1280 → 330×220 = 76 ms
1920×1280 → 1067×667 = 160 ms
1920×1280 → 4800×3200 = 1540 ms

Скорость работы этого метода зависит от всех параметров: размеров исходного изображения, размера конечного изображения, размера окна фильтра.

Именно этот метод реализован в ImageMagick, GIMP, в текущей версии Pillow с флагом ANTIALIAS.

Одно из преимуществ этого метода в том, что фильтры могут задаваться отдельной функцией, никак не привязанной к реализации метода. При этом функция самого фильтра может быть достаточно сложной без особой потери производительности, потому что коэффициенты для всех пикселей в одном столбце и для всех пикселей в одной строке считаются только один раз. Т.е. сама функция фильтра вызывается только (m + n) * w раз, где m и n - размеры конечного изображения, а w - размер окна фильтра. И наклепать этих функций можно множество, было бы математическое обоснование. В ImageMagick, например, их 15. Вот как выглядят самые популярные:

Билинейный фильтр (bilinear или triangle в ImageMagick)


Бикубический фильтр (bicubic , catrom в ImageMagick)


Фильтр Ланцоша (Lanczos)

Примечательно, что некоторые фильтры имеют зоны отрицательных коэффициентов (как например бикубический фильтр или фильтр Ланцоша). Это нужно для придания переходам на конечном изображении резкости, которая была на исходном.

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

Для начала пойдем в главное меню Изображение - Размер изображения (Image - Image Size) или Alt+Ctrl+I .

Если вы кликните по стрелочке около параметра Ресамплинг (Resample Image) , то в выплывающем окне появится несколько вариантов интерполяции:

  • Автоматически (Automatic) . Приложение Photoshop выбирает метод ресамплинга на основе типа документа и увеличения либо уменьшения его масштаба.
  • Сохранить детали (с увеличением) (Preserve details (enlargement)) . Если выбран этот метод, становится доступным ползунок Снижение шума для сглаживания шума при масштабировании изображения.
  • Сохранение деталей 2.0 (Preserve Details 2.0) . Этот алгоритм даёт очень даже интересный результат увеличения картинки. Конечно, детализация подробнее не становится, но та, что есть увеличивается довольно сильно не теряя чёткости.
  • . Хороший метод для увеличения изображений на основе бикубической интерполяции, разработанный специально для получения более гладких результатов.
  • Бикубическая (с уменьшением) (Bicubic Sharper (reduction)) . Хороший метод для уменьшения размера изображения на основе бикубической интерполяции с повышенной резкостью. Этот метод позволяет сохранить детали изображения, подвергнутого ресамплингу. Если интерполяция «Бикубическая, c уменьшением» делает слишком резкими некоторые области изображения, попробуйте воспользоваться бикубической интерполяцией.
  • Бикубическая (плавные градиенты) (Bicubic (smooth gradients)) . Более медленный, но и более точный метод, основанный на анализе значений цвета окружающих пикселей. За счет использования более сложных вычислений бикубическая интерполяция дает более плавные цветовые переходы, чем интерполяция по соседним пикселам или билинейная интерполяция.
  • По соседним пикселам (четкие края) (Nearest Neighbor (hard edges)) . Быстрый, но менее точный метод, который повторяет пиксели изображения. Этот метод сохраняет четкие края и позволяет создать файл уменьшенного размера в иллюстрациях, содержащих несглаженные края. Однако этот метод может создать зубчатые края, которые станут заметными при искажении или масштабировании изображения, или проведении множества операций с выделением.
  • Билинейная (Bilinear) . Этот метод добавляет новые пиксели, рассчитывая среднее значение цвета окружающих пикселей. Он дает результат среднего качества.

Пример использования Бикубическая (с увеличением) (Bicubic Smoother (enlargement)) :

Есть фото, размеры 600 х 450 пикселей разрешение 72 dpi

Нам нужно его увеличить. Открывает окно Размер изображения (Image Size) и выбираем Бикубическая (с увеличением) (Bicubic Smoother (enlargement)) , единицы измерение - проценты.

Размеры документа сразу установятся на значения 100%. Далее будем постепенно увеличивать изображение. Измените значение 100% на 110%. Когда вы измените ширину, высота автоматически подгонится сама.

Теперь его размеры уже 660 х 495 пикселей. Повторяя данные действия можно добиться хороших результатов. Конечно, идеальной четкости нам добиться будет достаточно сложно, так как фото было маленькое и низкого разрешения. Но посмотрите, какие изменения произошли в пикселях.

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

До встречи в следующем уроке!

Увеличение цифровых фотографий в несколько раз относительно их исходного размера в 300 PPI с сохранением резких деталей, вероятно, является основной целью многих алгоритмов интерполяции. Несмотря на эту общую цель, результаты масштабирования могут значительно варьироваться в зависимости от используемых программ и реализованных в них алгоритмов интерполяции и повышения резкости.

Основы

Проблемы возникают, потому что, в отличие от плёнки, цифровые изображения сохраняют изображение в дискретных единицах: пикселях . Любая попытка увеличить изображение соотвественно увеличивает эти пиксели - если не применять интерполяцию. Наведите курсор на изображение справа, чтобы увидеть, как даже самая простая стандартная интерполяция может улучшить вызванную пикселями квадратичность.

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

Обзор неадаптивной интерполяции

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

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

*стандартный алгоритм интерполяции в Adobe Photoshop CS и CS2


Диаграмма качества справа приблизительно показывает зону действия каждого из алгоритмов. Метод ближайшего соседа наиболее подвержен ступенчатости, однако он, а также билинейный метод наименее подвержены граничным гало - они отличаются лишь различным балансом между ступенчатостью и размытием. Вы увидите, как резкость границы постепенно нарастает между вариациями бикубического метода (3-5), но достигаются они за счёт увеличения ступенчатости и граничных гало. Метод Ланцоша выдаёт результаты, очень похожие на бикубический и бикубический резкий в Фотошопе, за исключением, возможно, несколько большей ступенчатости. Все они показывают некоторую степень ступенчатости, хотя ступенчатость всегда можно полностью исключить, использовав размывание изображения (7).

Алгоритмы Ланцоша и бикубический входят в число наиболее общеупотребимых, вероятно, потому что они довольно хороши в своём выборе между тремя дефектами (что очевидно, исходя из их расположения близко к центру треугольника). Методы ближайшего соседа и билинейный не являются вычислительно затратными и потому могут быть использованы для увеличения на сайтах или в портативных устройствах.

Обзор адаптивных методов

Вспомним, что адаптивные алгоритмы (применяющие обнаружение границ) не рассматривают все пиксели одинаково, но вместо того адаптируются к окружающему содержанию изображения. Такая гибкость создаёт намного более резкие изображения с меньшим числом дефектов (чем это было бы возможно для неадаптивного метода). К сожалению, они зачастую требуют большего времени обработки и обычно более дороги.

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

Стандартный алгоритм в Adobe Photoshop CS и CS2
всё ещё в фазе исследований, недоступен публично

«Подлинные фракталы » (Genuine Fractals), вероятно, являются наиболее общеупотребимой итеративной (или фрактальной) программой увеличения. Она пытается обрабатывать фото аналогично файлу векторной графики - добиваясь масштабирования практически без потерь (по крайней мере в теории). Что интересно, её исходным назначением вообще не было увеличение, она предназначалась для эффективного сжатия изображений. С момента её появления времена изменились, и дисковое пространство сейчас гораздо более доступно, так что у неё появилось новое применение.

Shortcut PhotoZoom Pro (ранее S-Spline Pro) - это ещё один распространённый фотоувеличитель. При интерполяции каждого пикселя он принимает в расчёт множество окружающих пикселей и пытается воссоздать гладкую границу, которая проходит через все известные пиксели. Для восстановления границ он использует алгоритм сплайна, который аналогичным образом применяется производителями автомобилей при разработке новых плавных обводов для своих машин. У PhotoZoom есть несколько разновидностей настройки - каждая предназначена для своего типа изображения.

Заметьте, как PhotoZoom выдаёт превосходные результаты на вышеприведенной компьютерной графике, поскольку он способен воспроизвести чёткую и гладкую границу без ступенек для всех кривых во флаге. Подлинные фракталы вносят мелкомасштабную текстуру, которой не было в оригинале, и их результат для данного примера ничем не лучше бикубической интерполяции. Стоит заметить, однако, что подлинные фракталы наилучшим образом справились с законцовками флага, тогда как PhotoZoom порой разбивает их на части. Единственный интерполятор, который сумел и выдержать гладкие чёткие границы, и аккуратные законцовки, - это SmartEdge.

Примеры из жизни

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


Метод ближайшего соседа Бикубический Бикубический мягкий PhotoZoom Подлинные фракталы SmartEdge
С повышением резкости: бикубический бикубический мягкий PhotoZoom (стандартный) подлинные фракталы SmartEdge

Все методы, кроме метода ближайшего соседа (который просто увеличивает пиксели) проделали выдающуюся работу, учитывая относительно малый размер оригинала. Уделите особенное внимание проблемным зонам: с точки зрения ступенчатости это переносица, кончики ушей, усы и пряжка ремня. Как и ожидалось, в отрисовке мягкого фона все отработали практически идентично.

Несмотря на трудности, которые у подлинных фракталов вызвала компьютерная графика, они буквально превзошли себя на этом настоящем фото. Они создали самые тонкие усы, которые получились даже тоньше, чем они были на исходном изображении (относительно прочих). Кроме того, они резко отрисовали кошачью шерсть, избежав при этом эффекта гало по контуру. С другой стороны, кому-то получившаяся текстура меха может показаться нежелательной, так что в принятии решения существует также субъективный момент. В целом я бы сказал, что их результат оказался наилучшим.

PhotoZoom Pro и бикубический алгоритм оказались весьма похожи, за вычетом того, что PhotoZoom породил меньше видимых граничных гало и несколько меньшую ступенчатость. SmartEdge также показал исключительно хороший результат, однако он всё ещё находится в разработке и для применения недоступен. Это единственный алгоритм, который хорошо отработал как для компьютерной графики, так и для реального снимка.

Повышаем резкость увеличенных фото

Наше внимание было сфокусировано на типе интерполяции. Однако техника повышения резкости может иметь как минимум эквивалентное влияние.

Применяйте повышение резкости после увеличения снимка до итогового размера , а не до или в процессе того. В противном случае ранее незаметные гало маски нерезкости станут чётко различимы. Этот эффект аналогичен тому, который получается вследствие применения маски нерезкости с радиусом, превышающим идеальный. Наведите курсор на изображение слева (фрагмент ранее показанного увеличения), чтобы увидеть, что произойдёт, если применять повышение резкости до увеличения. Обратите внимание на увеличение размера гало вокруг усов и по контуру.

Имейте также в виду, что многие алгоритмы интерполяции имеют некоторое встроенное повышение резкости (такие как бикубический резкий в Фотошопе). Зачастую избежать гипертрофирования границ невозможно, поскольку сама по себе интерполяция матрицы Байера тоже может гипертрофировать границы (и повысить визуальную резкость).

Если ваша камера не поддерживает формат RAW (и вы вынуждены обрабатывать JPEG), убедитесь в том, что встроенное повышение резкости в камере отключено или сведено к минимуму. Включите сохранение максимального качества JPEG, поскольку незаметные в исходном размере дефекты сжатия значительно усилятся при увеличении и последующем повышении резкости.

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

Повышение резкости и дистанция просмотра

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

Плотность пикселей типичного дисплея колеблется в пределах 70-100 PPI, в зависимости от настройки разрешения и размеров экрана. Стандартное значение 72 PPI при использовании вышеприведенного калькулятора означает радиус маски 0.3 пикселя - это обычный радиус, который используют для изображений, публикуемых на сайтах. Иначе, печатное разрешение 300 PPI (стандартное для фотопринтеров) выдаст радиус маски порядка 1.2 пикселя (тоже типичный).

Когда интерполяция становится важна

Разрешение большого рекламного щита на обочине дороги никогда не требует настолько высокого разрешения, как отпечаток для галереи искусств, рассматриваемый с близкого расстояния. Следующий инструмент отображает минимальное PPI и максимальный печатный размер, который может использоваться, прежде чем глаз начнёт различать отдельные пиксели (без интерполяции).

В этой статье 711 слов.

Навигация по записям

Как обещал Зарию и Роману, хоть и с задержкой, публикую статью на тему увеличения изображения для подготовки к крупноформатной печати.

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

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

Adobe Photoshop давно вошёл в нашу жизнь и я сам уже не помню с какой версии я начинал (сейчас пользуюсь CS6). Этот программный продукт по удобству и наличию необходимых инструментов просто гениален.

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

Под удар общества потребления как раз и попали алгоритмы увеличения и уменьшения изображения. Они в Adobe Photoshop безбожно устаревшие. Прогресса я давно не наблюдаю, хотя плагины более корректного ресайза существуют уже очень давно.

Для примера я буду использовать собственное фото ювелирной композиции «Мальчик», на которой изображен вооруженный монгольский мальчик.

Оригинал

Изначально фото имело разрешение 3580 х 5382 пикс. (19 Мпикс, был небольшой кроп).

Если следовать канонам печати, оно должно иметь 300dpi в файле для печати.

Если я сниму галочку «Resample» и поставлю 300dpi (т.е. не буду использовать средства увеличения изображения Adobe Photoshop), то фотошоп мне пересчитает размер результирующего отпечатка.

Для такого разрешения снимка он составит 30 х 45 см.

Но представим, что мы хотим с данном отпечатка почти без потери качества отпечатать баннер 3 х 6 м (300 х 600 см.) или 35800 х 53820 пикс. (1927 Мпикс = 1.9 Гпикс). 1.9 Гпикс в цифровой камере очень долго будут мечтой для подавляющего большинства и потому тема статьи так актуальна.

Значит грубо говоря я должен увеличить этот и так не маленький для «переваривания» моим компьютером файл в 10 раз (или чуть более, но на баннере обычно есть еще текст снизу, так что будем считать, что в 10 и не будем учитывать, что баннеры, как правило, горизонтальной ориентации).

Все из вас знают, что у окошка изменения размеров изображения в Adobe Photoshop есть опции, в выпадающем меню внизу?

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

Первые два это особо старые алгоритмы и первый, Nearest Neighbor , Adobe Photoshop рекомендует для сохранения контрастных кромок в изображении.

Вкратце, если их описывать, то Bicubic Smoother даёт мягкие переходы между реальными пикселями, а Bicubic Sharper усиливает контраст кромок.

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

Программы и плагины для качественного увеличения изображения

Поскольку работать с гигантским результирующим файлом в 1.9 Гпикс моему компьютеру не под силу, то я использую фрагмент фото для демонстрации увеличения различными алгоритмами.

Фрагмент размером 607 пикселей в ширину. Я его увеличиваю до 3000 пикселей, т.е. в 5 раз.

Оригинал фрагмента

Nearest Neighbour vs Bicubic Smoother

Как видите, Nearest Neighbour даёт «лесенку», которую Bicubic Smoother размывает.

Программа PhotoZoom Pro 5

Простой интерфейс, большой набор математических алгоритмов увеличения с помощью сплайнов.
Многообещающе.

Я взял именно Bicubic Smoother в качестве алгоритма от Adobe, потому что они его рекомендуют. И «лесенки» на фото в наше время уже неприемлемы. Это же не 90-ые годы в конце концов!
Время пиксельных и спрайтовых игр уже ушло.

Из сравнения вы видите, что PhotoZoom Pro справился с задачей увеличения лучше. Но намного ли?

Alien Skin BlowUp2

И...PhotoZoom Pro5 побеждает!

ReShade

ReShade ставится как отдельная маленькая программа.

Старая программа ReShade (2011 г.)побеждает более современную и насыщенную алгоритмами PhotoZoom Pro . Я попробовал PhotoZoom Pro все алгоритмы и существенного улучшения не заметил. Только время потерял.

Так что у нас новый лидер — ReShade, с которым будем сравнивать оставшихся конкурентов.

Kneson Imagener

Отдельная программа. Интерфейс как будто из Win95.

AKVIS Magnifier

Плагин для Adobe Photoshop.

Интерфейс навороченный, а результат — плачевный.

Лидером оказался следующий плагин. Не зря я их давно выделял среди остальных...

OnOne Perfect Resize Professional Edition 7

Плагин для Adobe Photoshop.

ImageJ + plugin Resize

Слышал об том плагине, но не пробовал до сего момента.

Изменять размер нужно через меню «Plugins\Resize\Resize», метод «Least-Squares»

Результат не впечатлил. OnOne Perfect Resize побеждает.

Adobe Photoshop + bicubic sharper

В своей книге The Adobe Photoshop CS6 Book for Digital Photographers (у меня версия книги про CS6) Scott Kelby рекомендует использовать алгоритм bicubic sharper для увеличения фото вместо рекомендованного bicubic smoother .
Что ж...попробуем.

Результат не впечатлил. OnOne Perfect Resize побеждает.

Итоги

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

Разница между стандартным способом из Adobe Photoshop и OnOne Perfect Resize Professional Edition 7 большая и вполне заметная на печати.

2. Если вы соберетесь печатать совсем большие форматы, то учтите, что в СНГ сейчас принято использовать разрешение около 100 dpi для баннеров.

Для просто крупных изображений на выставку (1-2 м) используйте 150 dpi, если сложно получить больше. Расстояние просмотра, как правило, ограничено в 1-2 м. и с такого расстояния просмотра данное разрешение выглядит вполне приемлемо.

3. Если вы будете снимать на среднеформатный слайд, то сможете «вытащить» с него разрешения намного большем, чем с цифровой камеры. До 100 Мпикс.

4. Не забывайте о методах повышения резкости. Я в статье сравнил алгоритмы увеличения разрешения при отключенном увеличении резкости. Но к финальному отпечатку я, как правило, добавляю резкости. Конечно, не «в лоб», а, например, таким методом

В следующий раз мы поговорим о не менее важном моменте — уменьшении размеров фото для интернет. Казалось бы что проще, но... Почти все программы делают уменьшение размеров с большой потерей деталей.

Надеюсь данная статья поможет вам сделать красивые большие отпечатки ваших снимков!

Оцените, пожалуйста, статью

(40 votes, average: 4,73 out of 5)

Рекомендовать

Подписаться на RSS ленту

Читайте также:

Похожих статей не найдено


Добавить комментарий Отменить ответ

Войти с помощью:

Гости могут загрузить 2 картинки (можно отметить кликами левой кнопкой мыши на названиях файлов, с зажатой клавишей Ctrl ), размером не более 800KB каждая. Картинки должны быть форматов jpeg, pjpeg, png.

: 33 комментария

        • Роман, здравствуйте!

          Ваш «лайк» видно будет только, если вы зашли в аккаунт Гугл+ на другом компьютере тоже. Иначе Гугл+ вас не опознаёт и не показывает ваш «лайк».

          C1 добавлю завтра, предлагайте еще методы:) В поисках идеала...

          Изображение увеличил с 607 пикс -> 3000 пикс, т.е. в 5 раз.

          Я в статье упомянул, что 1.9 Гп мой компьютер просто не «переварит» в любом случае. Даже нет смысла пытаться.

          Если взять исходные размеры моего полного изображения (3580 х 5382), то получится 17900 х 26910 = 481 Мпикс (приличного качества).

          Я думаю, каждый первый печатник помянет меня нехорошим словом, если я ему принесу такой файл...:) Хотя на резкость ему ругаться и не придётся.

          Идеально, чтобы не раздражать печатника и угодить редактору, стоит отдавать файлы максимум 33 Мпикс. 40-50 в крайнем случае, если редактор совсем не умеет считать (не понимает печатный процесс).

          Т.е. с одной стороны файл 33 Мпикс не так тяжело ворочать дизайнеру издания, а с другой, редактор (часто не понимающий какое на самом деле ему нужно разрешение) будет доволен высоким разрешением на уровне среднего цифрозадника Sinar/Leaf/PhaseOne. Убейте Exif и вот вы владелец виртуального цифрозадника (они не пишут Exif в файл).

          Если же мы говорим про баннер, то всё будет зависеть от мощности вашего компьютера, мощности компьютера типографии и сколько «переварит» рип (чаще не более 250мб) печатной машины. Кстати, будет еще вопрос, обеспечивает ли их печатная машина высокое разрешение. Обычно баннеры 3×6м печатают с максимальным разрешением 75 dpi дабы всем было легче жить.

          Если мы углубимся в теорию (назрела доп.статья?), то при печати баннера 3 х 6 метров и дистанции просмотра 5м (если я относительно близко подойду к рекламному щиту на ножке) минимальное разрешение для печати составит 17 dpi, а файл будет 30 Мпикс. Ближе, как правило, никто не подходит к таким большим баннерам.

          на остальное отвечу завтра...

          Присоединенная картинка:


            • Будучи залогиненным вконтакте нажимаю кнопку вконтакта и ссылка вообще сразу открывается, ничего не спрашивая...

              Суть такая, что нужно быть залогиненным и нажать кнопку. Это проще всего. Я бы вообще это убрал для всех зарегистрированных пользователей эту фишку, но плагин такое разделение не позволяет сделать, а открывать для поисковиков значит вводить доп.нагрузку на и так едва ворочающийся сервер.

              Кстати, комментарий должен был появиться на вашей странице в Гугл+! Если бы я мог вас там найти, то посмотрел бы, есть ли на стене комментарий.

              по фото:

              Увеличивал разрешение по стороне, как и написал 607px->3000px.

              Это достаточно много. Я график внизу прикладывал к сообщению.

              На мой взгляд C1 отчаянно врёт цвета:) Хотя они более приятные, чем в ACR. Что говорить... C1 использует устаревшие профили ICC, а ACR использует DCP-профили. LR не использую, но подозреваю, что результат одинаковый, что и с ACR.

              Пусть график вас так не расстраивает. Это график для идеального случая. Большинство с 0.5м не видят точки уже и на 150 dpi, как ни стараются.

              Ближе 0.5 никто не будет смотреть т.к. некомфортно носом в плакат.

              Если имеется в виду _на 80%_, т.е. 100%->180%, то разрешение упадёт соответственно 300 dpi->166dpi. Иначе говоря даже правильный ресайз делать не нужно, просто печатайте крупнее. С 0.5м никто разницы не увидит между 300 и 166.

              Увеличение в виде геометрической прогрессии (1 2 4 8...пикселов) вряд ли имеет смысл. Оно сильно избыточно. Увеличение 1 исходный пиксель равен 8 на выходе быссмысленно. Это будет «мыло мыльное».

              Про фотообои. Да, «накачивают» и панорамят. Причем чаще именно «накачивают» т.к. сшивка панорам требует относительно много времени.

              А печатник потом все равно разрешение урежет. У него не один клиент и ему нужно гнать поток. На высоком разрешении печатной машины и скорость печати очень низкая и расход краски большой. Вопрос экономии...

              Есть печальный опыт.

              Если сами не оговорите качество печати максимальное, то сделают на низком. Я уже не говорю про раст, который тоже снижает разрешение.

              Не знаю, сшивают ли фотообои, а вот баннеры сшивают. Редко где есть 5-ти метровые машины. Хорошая практика печатать файл на хорошем разрешении кусками, а потом сваривать куски. Разрешение это не повысит, но зато РИП машины переверит всю информацию и можно напечатать в максимальном для этой машины. Нет необходимости уменьшать, пока РИП не сможет его «переварить».

              Широкоформатные печатные машины очень дорогие и потому меняют их редко. Оттого и начинка у них не рассчитана на такие большие размеры файлов.

              3×4м можно сделать из обычного 20мп кадра. Качество весьма достойное (75-100 dpi)

              Я печатаю баннеры по 3м шириной с такого формата. Как правило баннеры бывают и больше, но там уже несколько картинок задействовано или есть текст (печатаю и 3×6м).

              Баннер от фотообоев в том аспекте, в котором мы его сейчас рассматриваем — ничем не отличается.

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

              Полиграфические материалы, к которым можно отнести фотообои (интерьерная печать) я даю обычно 150 dpi и этого вполне хватает. 300 dpi только для каталогов и то, бывает этого много. Но даю с запасом (в смысле 300dpi это уже с запасом!).

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

              В результате вас всегда будет больше волновать правильно ли передадут цвета на печатной продукции, а вовсе не разрешение. Так сказать, сначала _необходимое_, а потом уже всякие изыски в виде повышенного разрешения. Потому как если наврут цвета (а это сплошь и рядом), то вашу продукцию можно будет сразу сдать в макулатуру.

              Вывод: есть методы повышения разрешения (я написал их в статье) и они _достаточные_ для всех типов печати, чтобы «разогнать» разрешение.

              Для супер-высокого разрешение есть варианты снимать на крупноформатную камеру листовые пленки. В США так многие делают и потом можно напечатать размером с большую стену без потери разрешения. Также можно снимать ч.б. на специальные 35мм пленки типа SPU, Gigabit И проч. При правильной проявке детализация очень высокая, но придётся поступиться цветом. Цветные пленки, даже слайды, не дают такого разрешения. Нужно, как минимум. перейти на средний формат. С тех слайдов можно вытащить 100 Мпикс реальных.

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

              Если панорамить и увеличивать, то на каком этапе, увеличивать лучше? — ответ 2. При увеличении готового файла нагрузка на компьютер будет наименьшая. Сшивать несколько гигантских кусков куда как проблемнее...

              3 вариант — плохое качество увеличения.

              Статью подготовлю:)

              в приложении мои баннеры. фото маленькое, он все видно без точек и на большом

              Присоединенная картинка:





Top