Обычно большая фотография позволяет видеть больше деталей.
Но в этом примере — наоборот: меньшая фотография кажется более четкой?
Не подтасовывал результат: для уменьшения большей из этих двух фотографий был использовано метод 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)
Метод очень понравился высокой четкостью получаемого результата (высокой детализацией на результате), но без искажений, которые получились бы в результате простого шарпа, и без танцев с бубнами для различного вида изображений.
Обнаружил единственную реализацию этого метода на 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
4. Изменять размер и шарпить можно в ImageJ через меню «Plugins\Resize\Resize», выбрав в появившемся диалоговом окне метод «Least-Squares».
Замечание: Можно применять только с 8-битными изображениями. На 16-битных не все хорошо. Но поскольку цель — подготовка для веба, то этого более, чем достаточно.
Наш умелец написал программу для более простого использования данного плугина под Windows. Называется эта программа «ImageJ Resize Launcher» (но и сам плугин и ImageJ и Java должны быть установлены). На момент написания этого текста последний релиз программы имеет версию 2.2 и имеется пререлиз 3. Официального сайта программа не имеет, но легко находится через поисковики по названию.
Для иллюстрации статьи использована «бесплатная фотография недели» отсюда www.shutterstock.com/gallery-449524p1.html
Внимание!!! Вопрос к аудитории!!!
Есть ли другие реализация этого метода кроме плугина к ImageJ?
Где еще можно прочитать про этот алгоритм???
ссылка на оригинал статьи http://habrahabr.ru/post/164473/
Добавить комментарий