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

Но в этом примере — наоборот: меньшая фотография кажется как минимум столь же четкой? Тогда — под катом детали.

Не подтасовывал результат: для уменьшения большей из этих двух фотографий был использован метод Bicubic Shaper — тот, что рекомендуется в Фотошопе именно для уменьшения изображений.
Значит, при подготовке меньшего размера фотографии был использован много более эффективный алгоритм?
Осторожно!!! Под катом — трафик с картинками.
Фотографии, публикуемые на веб-сайтах, как правило, подвергают 2 изменениям: уменьшению изображения и увеличению четкости/резкости (известному под термином «шарп» или «шарпенинг» — это калька с английского sharp).
Уменьшение очевидно для чего нужно. А шарп нужен для создания иллюзии резкости. Без шарпа уменьшенное изображение воспринимается недостаточно резким, мыльным, нечетким.
Существует множество методов, которые работают лучше или хуже в зависимости от конкретного изображения. Разумеется, очень часто комбинируют уменьшение размера и шарп в одном алгоритме.
Недавно набрел на очень эффективный метод, описанный в документе A. Muñoz Barrutia, T. Blu, M. Unser, «Least-Squares Image Resizing Using Finite Differences,» IEEE Transactions on Image Processing, vol. 10, no. 9, pp. 1365-1378, September 2001.bigwww.epfl.ch/publications/munoz0101.html (слева ссылка Download\PDF)
Авторы утверждают, что их алгоритм эффективен как для уменьшения так и для увеличения изображений.
Реализация алгоритма (см. ниже) очень понравилась высокой четкостью получаемого результата (высокой детализацией на результате), но без искажений, которые получились бы в результате простого шарпа, и без танцев с бубнами для различного вида изображений.
Пример:
Исходное изображение имело ширину 5600 пикселей
Это изображение шириной 800 пикселей получено из исходного при помощи Фотошоп через меню Image\Image Size с использование рекомендуемого Фотошопом для уменьшения способа Bicubic Shaper:

Это изображение шириной 600 пикселей получено из исходного по алгоритму «Least-Squares Image Resizing Using Finite Differences» (при помощи какой программы — см. ниже):

Обнаружил единственную реализацию этого алгоритма — только на Java, только без исходных текстов, только в виде плугина для программы ImageJ.
bigwww.epfl.ch/algorithms/ijplugins/resize/
Как установить:
1. Ставим Java java.com/ru/download/index.jsp
2. Ставим ImageJ rsb.info.nih.gov/ij/
3. Скачиваем со страницы bigwww.epfl.ch/algorithms/ijplugins/resize/ файл bigwww.epfl.ch/algorithms/ijplugins/resize/Resize_.jarи не распаковывая его помещаем в подкаталог plugins программы ImageJ
Как использовать:
1. Запустить ImageJ
2. Открыть файл
3. Изменять размер и одновременно шарпить через пункт меню «Plugins\Resize\Resize», затем выбрав в появившемся диалоговом окне метод «Least-Squares». Не в основном диалоге изменения размеров ImageJ, а именно через меню плугинов!
Замечание:
Можно применять только с 8-битными изображениями. На 16-битных не все хорошо. Но поскольку цель — подготовка для веба, то этого более, чем достаточно.
Наш умелец с ником n1kka написал программу для более простого использования описанного выше плугина ImageJ Resize под Windows. Называется эта программа «ImageJ Resize Launcher». Она ставится дополнительно к самому плугину и ImageJ и Java.
Неочевидный момент:
файлы для обработки добавляются перетаскиванием из Проводника Windows.
На момент написания этого текста последний релиз программы имеет версию 2.2 и имеется пререлиз версии 3. Официального сайта программа не имеет, но легко находится через поисковики по названию.
Для иллюстрации статьи использована «бесплатная фотография недели» отсюда www.shutterstock.com/gallery-449524p1.html
По просьбам аудитории:
По алгоритму Lancoz (с помощью бесплатной программы XnConvert):

Bicubic (с помощью программы Фотошоп):

BicubicShaper (с помощью программы Фотошоп):

Least-squares (с помощью программы ImageJ):

Выводы:
— Lancoz — получилось мыльновато, аналогично Bicubic, но более деликатно;
— Bicubic — получилось мыльновато аналогично Lancoz, но более грубовато;
— Bicubic Shaper — «типа чётка», но лезут артефакты;
— Least-Squares — все же лучше переданы мельчайшие детали («волосики»);
— для крупных деталей — разницы практически и нет.
Это можно заметить в верхней части картинки, где «волосики» видны.
Обычно большая фотография позволяет видеть больше деталей.

Но в этом примере — наоборот: меньшая фотография кажется как минимум столь же четкой? Тогда — под катом детали.

Не подтасовывал результат: для уменьшения большей из этих двух фотографий был использован метод Bicubic Shaper — тот, что рекомендуется в Фотошопе именно для уменьшения изображений.
Значит, при подготовке меньшего размера фотографии был использован много более эффективный алгоритм?
Осторожно!!! Под катом — трафик с картинками.
Введение
Фотографии, публикуемые на веб-сайтах, как правило, подвергают 2 изменениям: уменьшению изображения и увеличению четкости/резкости (известному под термином «шарп» или «шарпенинг» — это калька с английского sharp).
Уменьшение очевидно для чего нужно. А шарп нужен для создания иллюзии резкости. Без шарпа уменьшенное изображение воспринимается недостаточно резким, мыльным, нечетким.
Существует множество методов, которые работают лучше или хуже в зависимости от конкретного изображения. Разумеется, очень часто комбинируют уменьшение размера и шарп в одном алгоритме.
Об эффективном алгоритме Least-Squares...
Недавно набрел на очень эффективный метод, описанный в документе A. Muñoz Barrutia, T. Blu, M. Unser, «Least-Squares Image Resizing Using Finite Differences,» IEEE Transactions on Image Processing, vol. 10, no. 9, pp. 1365-1378, September 2001.bigwww.epfl.ch/publications/munoz0101.html (слева ссылка Download\PDF)
Авторы утверждают, что их алгоритм эффективен как для уменьшения так и для увеличения изображений.
Реализация алгоритма (см. ниже) очень понравилась высокой четкостью получаемого результата (высокой детализацией на результате), но без искажений, которые получились бы в результате простого шарпа, и без танцев с бубнами для различного вида изображений.
Пример:
Исходное изображение имело ширину 5600 пикселей
Это изображение шириной 800 пикселей получено из исходного при помощи Фотошоп через меню Image\Image Size с использование рекомендуемого Фотошопом для уменьшения способа Bicubic Shaper:

Это изображение шириной 600 пикселей получено из исходного по алгоритму «Least-Squares Image Resizing Using Finite Differences» (при помощи какой программы — см. ниже):

Обнаружил единственную реализацию этого алгоритма — только на Java, только без исходных текстов, только в виде плугина для программы ImageJ.
bigwww.epfl.ch/algorithms/ijplugins/resize/
Программа ImageJ
Как установить:
1. Ставим Java java.com/ru/download/index.jsp
2. Ставим ImageJ rsb.info.nih.gov/ij/
3. Скачиваем со страницы bigwww.epfl.ch/algorithms/ijplugins/resize/ файл bigwww.epfl.ch/algorithms/ijplugins/resize/Resize_.jarи не распаковывая его помещаем в подкаталог plugins программы ImageJ
Как использовать:
1. Запустить ImageJ
2. Открыть файл
3. Изменять размер и одновременно шарпить через пункт меню «Plugins\Resize\Resize», затем выбрав в появившемся диалоговом окне метод «Least-Squares». Не в основном диалоге изменения размеров ImageJ, а именно через меню плугинов!
Замечание:
Можно применять только с 8-битными изображениями. На 16-битных не все хорошо. Но поскольку цель — подготовка для веба, то этого более, чем достаточно.
Программа ImageJ Resize Launcher
Наш умелец с ником n1kka написал программу для более простого использования описанного выше плугина ImageJ Resize под Windows. Называется эта программа «ImageJ Resize Launcher». Она ставится дополнительно к самому плугину и ImageJ и Java.
Неочевидный момент:
файлы для обработки добавляются перетаскиванием из Проводника Windows.
На момент написания этого текста последний релиз программы имеет версию 2.2 и имеется пререлиз версии 3. Официального сайта программа не имеет, но легко находится через поисковики по названию.
Разное
Для иллюстрации статьи использована «бесплатная фотография недели» отсюда www.shutterstock.com/gallery-449524p1.html
По просьбам аудитории:
По алгоритму Lancoz (с помощью бесплатной программы XnConvert):

Bicubic (с помощью программы Фотошоп):

BicubicShaper (с помощью программы Фотошоп):

Least-squares (с помощью программы ImageJ):

Выводы:
— Lancoz — получилось мыльновато, аналогично Bicubic, но более деликатно;
— Bicubic — получилось мыльновато аналогично Lancoz, но более грубовато;
— Bicubic Shaper — «типа чётка», но лезут артефакты;
— Least-Squares — все же лучше переданы мельчайшие детали («волосики»);
— для крупных деталей — разницы практически и нет.
Это можно заметить в верхней части картинки, где «волосики» видны.