Фильтры (Plug-ins) и спецэффекты (Effects)

Большинство фильтров (filters или plug-ins) предназначено для создания специальных эффектов, например имитации мозаики или живописного стиля Ван-Гога. С помощью трехмерных спецэффектов двухмерные графические программы способны трансформировать плоское двухмерное изображение в объемное. Группа художественных эффектов позволяет за считанные минуты превратить обычную фотографию в произведение живописи. При этом вы можете имитировать самые разные виды живописи (масло, акварель и т. п.) и стили любых художников.

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

Большинство современных графических программ поддерживает возможность применения фильтров, разработанных третьими фирмами под стандарт Adobe Photoshop. Например, Согеl РНОТО-PAINT также поддерживает подключаемые модули других фирм и содержит в своем составе фильтры, разработанные для Аdоbе Photoshор. Эти модули называются подключаемыми (Plug-ins). Их использование расширяет функциональные возможности программы.

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

• размывание;

Рис. 3.56. Применеие фильтров

• увеличение резкости;

• тиснение;

• акварельный эффект.

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

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

• Шаг 1. Значение цвета пиксела умножается на число в центре ядра (а22).

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

• Шаг З. для каждого пиксела изображения повторяется процесс, включающий выполнение шагов 1 и 2. данную процедуру принято называть фильтрацией
изображения.

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

Пример. Алгоритм работы фильтра Размывание

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

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

3. Степень размывания можно увеличить одним из трех способов:

• использованием большего размера ядра для распределения цвета среди большего числа соседей (в окне диалога этого фильтра значение размера
ядра задается установкой параметра Радиус (Radius) в пикселах);

• подбором коэффициентов ядра и уменьшением влияния центрального коэффициента,

• повторной фильтрацией изображения с тем же ядром размывания.

Пример. Алгоритм работы фильтра Тиснение

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

1. Каждый пиксел в изображении обрабатывается ядром тиснения размером З х 3. В отличие от ядер размывания и резкости, в которых сумма коэффициентов равна 1, сумма весов в ядре тиснения равна 0. Это означает, что «фоновым» пикселам (пикселам, которые не находятся на границах перехода от одного цвета к другому) присваиваются нулевые значения, а не фоновым пикселам — значения, отличные от нуля.

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

3. Направление подсветки изображения можно изменять, меняя позиции 1 и — 1 в ядре. Если, например, поменять местами значения 1 и — 1, то направление подсветки инвертируется.

Слои

Слои — один из основных инструментов растровой графики. Что же такое слои? Представьте себе, что у вас на столе несколько кусков оконного стекла (прозрачных полиэтиленовых пленок, бумажных калек), наложенных друг на друга. На каждом стекле вы что-то нарисовали специальным фломастером и теперь смотрите на все это сверху. Считайте, что стекла — это и есть слои.

Слой (layer) — дополнительный уровень (холст) для рисования, метафора прозрачной кальки. Каждый слой сохраняет (повторяет) все параметры основного изображения (размеры, разрешение, цветовую модель, число каналов). Соответственно пропорционально количеству используемых слоев возрастает размер изображения. Так, добавление к фоновому слою нового слоя увеличивает размер файла изображения в два раза, двух слоев — в три раза и т. д.

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

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