Первое, что приходит в голову пользователя, впервые услышавшего о
ImageMagick:
Консольный графический редактор для обработки изображений? ЗАЧЕМ???
Не спешите! причин, в силу которых
ImageMagick весьма и весьма популярен - немало. В частности - возникающая порой необходимость применить ряд операций к большому количеству изображений.
На нашем форуме
уже рассматривалась возможность нанесений водяных знаков (watermarks) при помощи
ImageMagick. Продолжим эту тему.
ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
Возможности ImageMagick:
Преобразование изображения из одного формата в другой (например, PNG в JPEG).
· Трансформирование: размер, вращение, увеличение, подгон под рамку.
· Прозрачность: установите коэффициент прозрачности.
· Рисование и черчение: добавьте объекты или текст к вашему изображению.
· Добавление простых и декорированых рамок вокруг изображения.
· Специальные эффекты: сворачивание листа, ступенчатое отображение (тень), искусственные пятна и другое.
· Возможность создавать GIF-анимации из нескольких изображений.
· Добавление пояснительного или декорированного текста к русунку.
· Функция идентификации изображения описывает формат и свойства графического файла.
Программа идентифицирует формат и характеристики одного и более файлов. Также сообщает о поврежденных и не законченных изображениях. Информация сопровождается номером изображения, именем файла, размерами рисунка, количеством цветов, количеством байтов в файле, форматом и даже количеством секунд необходимых для чтения и обработки файла.
· Например,
$magick> identify rose.jpg
rose.jpg JPEG 640x480 DirectClass 87kb 0.050u 0:01
· Компоновка одного изображения из нескольких.
· Монтаж миникопии изображение рядом с основным.
· Поддержа форматов изображений движения, которые используются и цифровой обработке фильмов (формат DPX).
· Поддержка обработки изображения, используя математические операции. Это дает возможность, например, разработать изменение цвета по своему математическому закону, а также применять многие другие изменения, используя эту технологию.
· Динамическое ранжирование интенсивности света. Эта функция автоматически распределяет освещенность от солнечных лучей до самых глубоких и темных теней, используя оценку этой картины в реальной сцене.
· Шифрование и расшифровка изображения. Эта функция делает изображение непонятным и неразборчивым с возможностью обратного восстановления.
· Поддержка обработки очень больших изображений. Просматривайте и редактируйте Mega и Giga-пиксельные изображения.
Итак, рассмотрим нсколько приемов работы с
ImageMagick:
Перевод в оттенки серого
Пример:
convert -colorspace GRAY image.jpg image_convert.jpg
Ключ
colorspace позволяет переход между GRAY, OHTA, RGB, Transparent, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK.
Перевод в ч/б
1. Бинаризация с диффузией ошибки, ключи:
-dither
-monochrome
Вместе с этой опцией применяются ключи -colors или -monochrome для определения используемого цветового пространства.
2. Бинаризация по порогу, ключ:
-threshold число
где "число" - значение порога.
Пример:
convert -threshold 128 1_image.png 2_image.png
Локальная адаптивная бинаризация по порогу
-lat ШиринаxДлина{+-}Смещение{%}
Пример:
convert -lat 3x3+5% image.jpg image_convert_3x3.jpg
Постеризация
-posterize количество_оттенков
Инвертирование
Изменение разрядности
Пример; делаем из 16-битного изображения - 8-битное:
Изменение контрастности
Пример:
convert -contrast image.jpg image_contrast-30.jpg
Автоконтраст
Нормализация
Гамма-коррекция
Значения менее 1.0 делают изображение более темным; более 1.0 - осветляют.
Область наиболее частого применения - от 0.8 до 2.3.
Возможно применение гамма-коррекции для различных каналов, пример:
Уровни
-level точка_чёрного{,точка_белого}{%}{,значение_гаммакоррекции}
Возможно указать как абсолютную величину, так и в %.
Изменение размера изображения
1. Задаем точный размер в пикселях:
2. В процентах:
3. Масштабирование изображения возможно и так:
Кадрирование
-crop ШиринаxВысота{+-}<ИсходноеХ>{+-}<ИсходноеY>{%}
Пример:
convert -crop 95x85+50+12 image.jpg image_convert_crop.jpg
Изменить плотность изображения
Меняем количество пикселей на дюйм:
-density DPIгоризонтальноеxDPIвертикальное
-density число
Поворот изображения
(по часовой стрелке +, против часовой -)
Фильтры
1. Размытие по Гауссу
-blur Радиус
-blur РАДИУСxСИГМА
2. Радиальное размытие
3. Удаление спекл-шума
4. Выделение краев
5. Увеличение резкости
6. Медианная фильтрация
7. Нечеткая маска
-unsharp РадиусxСигма+величина+порог
8. Добавление и удаление шума
Типы шумов - Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson.