среда, 27 февраля 2013 г.

Обработка. Подготовка для сайта «четких» фотографических изображений. Утилита для обработки по алгоритму «Least-Squares Image Resizing Using Finite Differences»

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

Обычно большая фотография позволяет видеть больше деталей. 



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



Не подтасовывал результат: для уменьшения большей из этих двух фотографий был использован метод 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 — все же лучше переданы мельчайшие детали («волосики»);
— для крупных деталей — разницы практически и нет.

Это можно заметить в верхней части картинки, где «волосики» видны.


Комментариев нет:

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