logo
Шпора ОИ ФИТУ 2010 by Libida, 1ый семестр (Корончик) [3840 вопросов]

24. Графические фильтры.

Фильтрация изображения —применение инструмента, в результате которого с изображением произойдут определенные изменения.

Графические фильтры создаются с помощью матрицы чисел - ядра свертки. Она представляет собой матрицу размером 3х3. Для преобразования пикселя изображения он умножается на значение в центре ядра, а значения пикселей, находящихся вокруг данного, умножаются на соответствующие им коэффициенты ядра, после чего все значения суммируются и мы получаем новое значение для изменяемого пикселя. Данный процесс должен быть последовательно выполнен с каждым пикселем редактируемого изображения. От коэффициентов ядра зависит то, как изменится редактируемое изображение. Для достижения некоторых эффектов необходимо последовательно применить к изображению не одну, а несколько матриц.

Наиболее популярные фильтры:

1. Инверсия цветов - изменение составляющих цвета на противоположенные. Наиболее простой способ редактирования изображения.

2. Размытие - границы изображения размываются, становясь более мягкими. Для того чтобы размыть изображение требуется считать в память значения RGB составляющих цвета каждого пикселя. После чего ядро размывания будет применено ко всем составляющим компонентам цвета всех пикселей редактируемого изображения:

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

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

- использовать ядро большего размера (цвет будет распределяться среди большего количества соседних пикселей)

- изменять коэффициенты таким образом, чтобы уменьшить влияние центрального коэффициента

- выполнить фильтрация изображения неоднократно.

3. Увеличение резкости - разница между цветами становится подчеркнута, тем самым выделяя какие-либо детали изображения. Создавая эффект увеличения резкости, мы выполняем все тот же алгоритм, но используем другое ядро, так как теперь нашей целью является увеличение резкости изображения. Ядро G для увеличения резкости:

Как и в предыдущем случае, мы по отдельности обрабатываем RGB составляющие, после чего формируем значения цвета обрабатываемого пикселя.

Для увеличения контраста между центральным пикселем и соседями, мы используем отрицательные весовые коэффициенты.

4. Тиснение выполняется с использованием нескольких матриц.

В то время как ядра размытия и резкости имели сумму коэффициентов равную единице, то в данном случае сумма весов в ядре тиснения равна нулю. Если сумма коэффициентов не будет равна 0, то мы получим отклонение к какому либо конкретному цвету.

Полученное значение цвета будет дополнительно обработано (усреднено) и приведено к диапазону 0-255 (подробнее вы сможете увидеть при реализации данного фильтра). Меняя значения позиций 1 и -1 мы можем получить измененное направление подсветки.

5. Акварельный эффект - изображение как будто нарисовано акварелью. Первый шаг: сгладим цвета редактируемого изображения:

Второй шаг: увеличим резкость переходов, для завершения создания эффекта акварели:

Подкорректировав параметры матрицы, мы можем получать как более резкий, так и более плавный эффект акварелизации.