sonyps4.ru

Применения фильтра с ядром к матрице изображения. Обзор методов фильтрации и сегментации цифровых изображений

Обзор методов фильтрации и сегментации цифровых изображений

Источник: Стругайло В.В. Обзор методов фильтрации и сегментации цифровых изображений // Наука и образование. Электронное научно-технические издание. // Московский автомобильно-дорожный государственный технический университет, 2012. — С. 270-281.

Введение

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

В данной работе осуществляется обзор методов фильтрации и сегментации изображений. Приводятся примеры рассмотренных методов для решения задач улучшения визуального представления и выделения контуров объектов на изображениях.

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

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

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

Частотные методы преобразований изображений основываются на идее Фурье преобразования, смысл которого заключается в представлении исходной функции в виде суммы тригонометрических функций различных частот, умноженных на заданные коэффициенты. В случае, если функция является периодической такое представление называется рядом Фурье. Иначе, непериодическая функция, имеющая конечную площадь под графиком, может быть выражена в виде интеграла от тригонометрических функций, умноженных на некоторую весовую функцию . Такой вариант называется преобразованием Фурье и в большинстве практических задач оказывается более полезным, чем ряд Фурье. Важным свойством является то, что функцию, представленную Фурье-преобразованием, после осуществления над ней преобразований можно обратно вернуть к исходному виду. Таким образом, данный подход позволяет обрабатывать функцию в частотной области, после чего без потери информации вернуться к исходному виду. Для решения задач фильтрации изображений преобразование Фурье также могут применяться. В практическом приложении реализация частотных подходов может быть аналогична пространственным методам фильтрации .

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

При осуществлении линейной фильтрации отклик маски задается суммой произведений пикселей в области покрытия фильтра. В качестве линейного сглаживающего фильтра используется усредняющий фильтр выходным значением, которого является среднее значение по окрестности маски фильтра . Подобный фильтр используется для задач удаления зернистости изображения вызванной импульсным шумом . Общая формула отклика g(x, y) усредняющего фильтра, предназначенного для фильтрации изображения f с размерами M×N, имеет вид :

где w(s, t) — элемент ядра свертки изображения, имеющей размеры m×n, s∈[−m/2, m/2], t∈[−n/2, n/2] — координаты ядра свертки по оси абсцисс и ординат; x=0,1,2,..,M−1, y=0,1,2,..,N−1 — координаты исходного изображения f.

В форме удобной для программного представления подобный фильтр можно представить в виде:

где — элемент матрицы изображения после фильтрации; — элемент массива ядра свертки изображения, имеющий размеры m×n; — элемент матрицы исходного изображения.

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

Среднее значение яркости вычисляется для центрального пикселя маски W i,j , содержащей значения яркости исходного изображения в покрытой маской локальной области изображения по формуле:

Дисперсия маски равна:

В данном алгоритме для каждого нового положения окна маски заново вычисляются соответствующие значения.

Сглаживание шума оценивается через среднее квадратичное отклонение:

На рисунке 1 приведены результаты фильтрации при наложении импульсного шума на цифровое изображение. На рисунке 2 представлены результаты фильтрации наложенного на цифровое изображение гауссовского белого шума.

Рисунок 1 — Результаты фильтрации импульсного шума на изображении


Рисунок 2 — Результаты фильтрации белого шума на изображении

Методы сегментации изображений

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

Сегментация решает в общем смысле две основные задачи :

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

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

Разделение изображения на части базируется на идеях, основанных на резких перепадах яркости. Изменение формы описания элементов изображения основывается на разделении изображения на однородные области с учетом заранее выбранных критериев .

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

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

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

Гистограммные методы основаны на выборе минимальных и максимальных значений или интервалов между экстремумами .

Методы на основе преобразований Хафа, основываются на связывании точек друг с другом путем предварительного выяснения их принадлежности к некоторой кривой заданной формы или обнаружения прямых и кривых линий по семейству заданных прямолинейных отрезков и дуг .

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

Методы водоразделов заключается в поиске линий разделяющих локальные минимумы и максимумы значений яркостей элементов изображения .

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

  • перекрестный оператор Робертса (Roberts" Crossoperator);
  • операторПревитта (Prewitt method, Compass Edge Detector);
  • операторСобела (Sobel operator).

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

Оператор Робертса использует четыре значения яркости на изображении и имеет следующий вид:

где — элемент матрицы исходного изображения.

Оператор Собела использует восемь отсчетов яркости в области анализируемого элемента:

Матрицы оператора Собела имеют вид :

где: E — матрица исходного изображения.

В программном представлении изображения :

Оператор Превитта подобен оператору Собела и отличается от него маской. Матрицы оператора Собела имеют вид :

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

Маска оператора Лапласиана гауссиана создается по формуле:

где σ — среднеквадратичное отклонение распределения Гаусса. Маска фильтра имеет вид:

где a — параметр в диапазоне .

Еще одним часто реализуемым программно методом является Canny . Фактически это набор последовательно применяемых алгоритмов. Данный подход устойчивый к шуму и дает, как правило, лучшие результаты по сравнению с градиентными методами. Но, так как это в принципе набор алгоритмов, то и быстродействие данного метода уступает более простым операторам.

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

Рисунок 3 — Результаты сегментации изображения

Заключение

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

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

Список использованной литературы

1. Гонсалес Р., Вудс Р. Цифровая обработка изображений. — М.: Техносфера, 2006. — 1072 с.
2. Грузман И.С., Киричук В.С., Косых В.П., Перетягин Г.И., Спектор А.А. Цифровая обработка изображений в информационных системах: Учеб. пособие. — Новосибирск.: Изд-во НГТУ, 2003. — 352 с.
3. Сато Ю. Обработка сигналов. Первое знакомство. 2-е издание. — М.: Додэка XXI, 2009. — 176 с.
4. Оппенгейм А. Шафер Р. Цифровая обработка сигналов. 2-е издание. — М.: Техносфера, 2007. — 856 с.
5. Лайонс Ричард. Цифровая обработка сигналов: 2 изд. — М.: ООО Бином-Пресс, 2006. — 656 с.
6. Сергиенко А.Б. Цифровая обработка сигналов. — СПб.: Питер, 2007. — 752 с.
7. Фисенко В.Т., Фисенко Т.Ю., Компьютерная обработка и распознавание изображений: учеб. пособие. — СПб: СПбГУ ИТМО, 2008. — 192 с.
8. Яне Б. Цифровая обработка изображений. — М.: Техносфера, 2007. — 584 с.
9. Шапиро Л., Стокман Дж. Компьютерное зрение. — М.: БИНОМ. Лаборатория знаний, 2006. — 752 с.

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

  • Инверсия цветов.
  • Размытие.
  • Увеличение резкости.
  • Тиснение.
  • Акварельный эффект.

Матрица – ядро свертки

Если мы рассмотрим данные эффекты с алгоритмической точки зрения, то не увидим ничего сложного: данные эффекты создаются с помощью матрицы чисел. Эта матрица называется ядром свертки.

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

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

Инверсия цветов

Это наиболее простой способ редактирования изображения: нам даже не потребуется матрица. Нам всего лишь достаточно изменить составляющие цвета на противоположенные (подробнее - при реализации фильтра в следующей части главы).

Алгоритм размытия

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

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

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

Чтобы увеличить ядро размытия, вы можете:

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

Алгоритм увеличения резкости

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

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

Алгоритм тиснения

Тиснение выполняется аналогично, но в данном случае мы используем не одну матрицу, а несколько.
Рисунок 3.1 Матрица для фильтра "Тиснение": шаг первый.
В то время как ядра размытия и резкости имели сумму коэффициентов равную единице, в данном случае сумма весов в ядре тиснения равна 0 . Если сумма коэффициентов не будет равна 0 , мы получим отклонение к какому-то конкретному цвету.

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

Алгоритм акварелизации

Название акварельного фильтра говорит само за себя: результирующее изображение будет выглядеть так, как будто его нарисовали акварелью. На первом этапе применения данного фильтра мы сгладим цвета редактируемого изображения.
Рисунок 4.1. Матрица для фильтра "Акварельный эффект": шаг первый.
На следующем этапе мы увеличим резкость переходов для завершения создания эффекта акварели.
Рисунок 4.2. Матрица для фильтра "Акварельный эффект": шаг второй.
Вот и все. Немного подкорректировав параметры матрицы, мы можем получать как более резкий, так и более плавный эффект акварелизации. br />

Результат линейной фильтрации для данного окна (для данного центрального пиксела) описывается следующей простой формулой:

$$ \begin{gather} \tag{1} \mbox{Im}" = \sum\limits_{i= -\textrm{hWinX}}^{\textrm{hWinX}}~\sum\limits_{j= -\textrm{hWinY}}^{\textrm{hWinY}} {\mbox{Im}\cdot \mbox{Mask}}, \end{gather} $$

где $\mbox{hWinX} = [\mbox{WinX}/2]$, $\mbox{hWinY} = [\mbox{WinY}/2]$ - полуширина и полувысота окна фильтрации соответственно (в случае окна $3\times 3$ обе величины равны 1).

Результат применения операции (1) ко всем пикселам изображения Im$$ называется $\it{сверткой}$ изображения Im с маской Mask.

Скользящее среднее в окне.

Простейшим видом линейной оконной фильтрации в пространственной области является \it{скользящее среднее} в окне. Результатом такой фильтрации является значение математического ожидания, вычисленное по всем пикселам окна. Математически это эквивалентно свертке с маской, все элементы которой равны $1/n$, где $n$ - число элементов маски. Например, маска скользящего среднего размера $3\times 3$ имеет вид

$$ \frac{1}{9}\times \begin{vmatrix} 1&1&1\cr 1&1&1\cr 1&1&1 \end{vmatrix}. $$

Рассмотрим пример фильтрации зашумленного полутонового изображения фильтром "скользяшее среднее". Изображения зашумлены гауссовским аддитивным шумом (рис. 2 - 8).

На рис. 1 - 6 приводятся примеры фильтрации полутонового изображения с различными степенями зашумления средним фильтром с размером окна $3\times 3$. Как видно из примера, фильтр "скользящее среднее" обладает меньшей способностью к подавлению шумовой компоненты по сравнению с ранее рассмотренным медианным фильтром $3\times 3$.

Рассмотрим скользящее среднее с большими размерами окна фильтрации. На рис. 23 - 28 приводится пример медианной фильтрации с различными размерами апертуры.

Как видно из рис. - 12, с увеличением размера окна растет способность медианного фильтра подавлять шумовую компоненту. Однако при этом нарастает и эффект кажущейся "расфокусировки" изображения (рис. 11, 12) за счет размытия краев видимых объектов. Этого специфически присущего линейным фильтрам эффекта размытия мы также не наблюдали в случае нелинейной ранговой фильтрации.

Гауссовская фильтрация.

В предыдущем разделе мы рассмотрели "вырожденный" случай линейной фильтрации с однородной маской. Между тем, сама идея свертки изображения с весовой матрицей аналогична ранее рассмотренной идее введения весовой матрицы во взвешенных процентильных фильтрах. Повысить устойчивость результатов фильтрации на краях областей можно, если придать более близким точкам окрестности большее влияние на окончательный результат, чем дальним. Примером реализации этой идеи для окна размера $3\times 3$ является маска

$$ \frac{1}{16}\times \begin{vmatrix} 1&2&1\cr 2&4&2\cr 1&2&1 \end{vmatrix}. $$

Такая маска называется гауссовой; соответственно, и использующий ее линейный фильтр также называется $\it{гауссовым}$. Используя дискретные приближения двумерной гауссовой функции, можно получить и другие гауссовы ядра большего размера. Обратите внимание на то, что $\it{сглаживающие}$ или $\it{фильтрующие}$ маски линейных фильтров должны иметь сумму всех элементов, равную $1$. Данное $\it{условие нормировки}$ гарантирует адекватный отклик фильтра на постоянный сигнал (постоянное изображение Im$ = \const$).

На рис. 13 - 15 приведен пример гауссовой линейной фильтрации зашумленного изображения.

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

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

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

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

Пусть – значение яркости изображения – полезного сигнала на пересечении i -ой строки и j -го столбца, а наблюдаемое на входе фильтра изображение описывается моделью:

Здесь – значение помехи в точке с координатами (i,j) , f() – функция, описывающая взаимодействие сигнала и помехи, а I и J – число строк и столбцов в кадре соответственно.

На рисунке 1 показаны примеры окрестностей различных типов, изображенные в виде совокупностей точек. Центром окрестностей, рабочей точкой, в которой осуществляется обработка, является точка с координатами (i,j) .

Рис. 1 Примеры окрестностей различных видов

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

При линейной фильтрации выходной эффект определяется линейной комбинацией входных данных:

В этом выражении – результат фильтрации полезного сигнала в точке кадра с координатами (i,j) , S – множество точек, образующих окрестность, – весовые коэффициенты, совокупность которых представляет собой двумерную импульсную характеристику (ИХ). Если область S конечна, то импульсная характеристика имеет конечную длину и фильтр называется КИХ-фильтром. В противном случае импульсная характеристика имеет бесконечную длину, а фильтр называется БИХ-фильтром. Импульсная характеристика не зависит от координат точки, в которой определяется выходной эффект. Процедуры обработки изображений, обладающие свойством независимости от координат, называются однородными (изопланатичными).

Наиболее распространенным критерием оптимальности, применяемым для оценки качества обработки, является критерий минимума среднего квадрата ошибок. Применительно к фильтрации запишем его выражение в виде:

которое является дополнительным требованием к импульсной характеристике фильтра.

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

Данная статья рассказывает не только о наиболее распространённых фильтрах обработки изображений, но в понятной форме описывает алгоритмы их работы. Статья ориентирована, прежде всего, на программистов, занимающихся обработкой изображений.

Матрица свёртки

Фильтров использующих матрицу свёртки много, ниже будут описаны основные из них.

Матрица свёртки – это матрица коэффициентов, которая «умножается» на значение пикселей изображения для получения требуемого результата.
Ниже представлено применение матрицы свёртки:

div – это коэффициент нормирования, для того чтобы средняя интенсивность оставалась не изменой.

В примере матрица имеет размер 3x3, хотя размер может быть и больше.

Фильтр размытия

Наиболее часто используемым фильтром, основанным на матрице свёртки, является фильтр размытия.

Обычно матрица заполняется по нормальному (гауссовому закону). Ниже приведена матрица размытия 5x5 заполненная по закону Гауссовского распределения.


Коэффициенты уже являются нормированными, так что div для этой матрицы равен одному.

От размера матрицы зависит сила размытия.


Стоит упомянуть о граничных условиях (эта проблема актуальна для всех матричных фильтров). У верхнего левого пикселя не существует «соседа» с права от него, следовательно, нам не на что умножать коэффициент матрицы.

Существует 2 решения этой проблемы:

1. Применение фильтра, только к «окну» изображения, которое имеет координаты левого верхнего угла , а для правого нижнего . kernelSize – размер матрицы; width, height – размер изображения.

Это не лучший способ, так как фильтр не применяется ко всему изображению. Качество при этом довольно сильно страдает, если размер фильтра велик.

2. Второй метод требует создания промежуточного изображения. Идея в том, чтобы создавать временное изображение с размерами (width + 2 * kernelSize / 2, height + 2 * kernelSize / 2). В центр изображения копируется входная картинка, а края заполняются крайними пикселями изображения. Размытие применяется к промежуточному буферу, а потом из него извлекается результат.


Данный метод не имеет недостатков в качестве, но необходимо производить лишние вычисления.

Фильтр размытия по Гауссу имеет сложность O(hi * wi * n *n), где hi, wi – размеры изображения, n – размер матрицы (ядра фильтра). Данный алгоритм можно оптимизировать с приемлемым качеством.

Квадратное ядро (матрицу) можно заменить двумя одномерными: горизонтальным и вертикальным. Для размера ядра 5 они будут иметь вид:

Фильтр применяется в 2 прохода: сначала горизонтальный, а потом к результату вертикальный (или на оборот).

Сложность данного алгоритма будет O(hi * wi * n) + O(hi * wi * n) = 2 * O(hi * wi * n), что для размера ядра больше двух, быстрее, чем традиционный метод с квадратной матрицей.

Фильтр улучшения чёткости

Для улучшения четкости необходимо использовать следующую матрицу:

Эта матрица увеличивает разницу значений на границах. Div для этой матрицы равен 1.


В программе GIMP есть фильтр «Матрица свёртки», который упрощает поиск необходимого Вам матричного преобразования.

Более подробную информацию о фильтрах основанных на матрице свёртки вы можете найти в статье «Графические фильтры на основе матрицы скручивания» .

Медианный фильтр

Медианный фильтр обычно используется для уменьшения шума или «сглаживания» изображения.

Фильтр работает с матрицами различного размера, но в отличие от матрицы свёртки, размер матрицы влияет только на количество рассматриваемых пикселей.

Алгоритм медианного фильтра следующий:

Для текущего пикселя, пиксели, которые «попадают» в матрицу, сортируются, и выбирается средние значение из отсортированного массива. Это значение и является выходным для текущего пикселя.

Ниже представлена работа медианного фильтра для размера ядра равного трём.


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


В результате наращивания происходит увеличение ярких объектов, а эрозии – увеличение тёмных объектов.

Фильтр использует входное изображение и бинарную матрицу. Бинарная матрица определяет форму окрестности. Обычно окрестность имеет круглую форму.

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

Заключение

В статье были описаны некоторые из фильтров обработки изображения, описаны их алгоритмы и особенности применения.



Загрузка...