Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 Простые графические спецэффекты.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.68 Mб
Скачать

1.2.3. Фильтрация изображений

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

Приведём пример работы фильтрации. Например, нужно сгладить изображение, убрав резкие изменения цвета. Для этого мы берём цвета окружающих точек и вычисляем для них "средний" цвет. Для сглаживания монохромного изображения достаточно вычислить среднее арифметическое интенсивности пиксела, а с цветным изображением можно поступить аналогично, если подвергнуть фильтрации его три монохромных компоненты. Можно получить и эффект превращения твёрдого тела в жидкость. Будем считать, что точки (пиксели) твёрдого тела имеют определённый диапазон цветов, а точки жидкости - некий другой диапазон. Можно построить фильтр, преобразующий твёрдое в жидкое на границе твёрдого и жидкого, и заставляющий "стекать" жидкость в определённом направлении (например - стекать вниз).

Линейная фильтрация

Линейные фильтры имеют очень простое математическое описание, и позволяют получить множество разнообразных эффектов. Обозначим монохромное изображение в виде функции A(x, y), которая задаёт интенсивность свечения его пикселей. x,y - целые числа - координаты пиксела; A(x, y) - вещественное положительное число - интенсивность свечения пиксела (x, y). Новое изображение, полученное в результате фильтрации, обозначим B(x, y). Линейный фильтр задаётся в виде матрицы М(i,j). Новое изображение B(x, y) вычисляется из исходного по формуле: Для фильтра чаще всего достаточно матрицы размером 3x3. Для такой матрицы индексы матрицы М(i,j) "пробегают" от -1 до 1. Матрица М(i,j) накладывается на прямоугольную сетку пикселей, причём срединный элемент матрицы М(0,0) соответствует обрабатываемому пикселю. Числа из матрицы перемножаются на интенсивности цветов пикселей, после чего складываются, и полученное значение выравнивается с помощью параметров F и S. Элементы матрицы М(i,j) - положительные или отрицательные целые числа. Именно эта матрица задаёт качество работы фильтра. Параметр F нужен, чтобы вернуть значение интенсивности в исходный диапазон. Чаще всего F равен числу элементов матрицы - в данном случае F=3х3=9. S задаёт смещение интенсивности. Это вспомогательный параметр, с помощью которого можно сделать изображение темнее или светлее. Если он не указан, будем считать его равным нулю. Рис.13. Наложение фильтра на изображение

Если результирующее значение интенсивности вышло за допустимые пределы, вместо него берётся крайнее допустимое значение. Таким образом, значение меньше нуля заменяется на ноль, а значение, превосходящее максимальную интенсивность, заменяется на её величину. Если обрабатываемый пиксель находится на краю изображения, то появляется вопрос - где взять соседние пиксели, находящиеся за пределами изображения. Можно доопределить эти пиксели, присвоив им цвета, равные цветам пикселей на границе изображения, или полученные экстраполяцией изображения.

Примеры линейных фильтров

Покажем важнейшие примеры линейных фильтров.

Сглаживание изображения

Сглаживание изображения можно реализовать, если взять матрицу M(i,j) и параметр F такими: Это так называемое гауссово сглаживание. Принцип действия очевиден - он основан на вычислении среднего арифметического интенсивностей точек в окрестности. На иллюстрациях - изображение, обрабатывание гауссовым сглаживанием.

Рис.14. Изображение до применения сглаживания.

Рис.15. Изображение после применения сглаживания.

Рис.16. Изображение после повторного сглаживания.

Повышение контраста

Повышение контраста делает резкие переходы между цветами ещё более резкими. Иными словами, оно даёт обратный эффект по сравнению со сглаживанием изображения. Для повышения контраста используются фильтры с матрицей, в которой все значения в сумме дают 1, причём в середине матрицы стоит положительное число. Вот два варианта выбора такой матрицы: Если сглаживающие фильтры снижают локальную контрастность изображения, размывая его, то повышающие контраст фильтры производят обратный эффект - восстанавливают детали исходного изображения. Рис.17. Изображение до применения повышения контраста. Рис.18. Изображение после повышения контраста.

Рис.19. Изображение после повторного повышения контраста.

Эффект "дождя"

Покажем примитивный эффект смазывания изображения по диагонали. Этот эффект символизирует косо падающий дождь. Вот матрица фильтра: Рис.20. Изображение после применения эффекта "дождь".

Рис.21. Изображение после повторного применения эффекта "дождь".