Представим себе, что, глядя на какую-нибудь сцену одним глазом, мы подносим к нему стеклянную пластину. Если эта пластина не была идеально прозрачной, то наблюдаемое изображение изменится. В зависимости от стекла, из которого сделана пластина, изменение может быть самым разнообразным. К примеру, если это стекло было цветным, то изображение приобретет соответствующий оттенок, а от мутного стекла - станет размытым.
Фильтрация изображений аналогична такому разглядыванию мира через стеклянную пластину, хотя и позволяет добиться гораздо большего разнообразия эффектов, чем эксперименты с разными пластинами. Под фильтрацией изображений понимают операцию, имеющую своим результатом изображение того же размера, полученное из исходного по некоторым правилам. Обычно интенсивность (цвет) каждого пикселя результирующего изображения обусловлена интенсивностями (цветами) пикселей, расположенных в некоторой его окрестности в исходном изображении.
Правила, задающие фильтрацию (их называют фильтрами ), могут быть самыми разнообразными. В этой лекции мы рассмотрим простейшие фильтры. Заметим, что, согласно предложенному определению, операция, заключающаяся в последовательном применении двух или более фильтраций, тоже является фильтрацией. Таким образом, можно говорить о составных фильтрах, соответствующих комбинациям простых. Изучив основные типы фильтров в данной лекции, мы будем иметь дело с применением фильтров, составленных из них, для решения разнообразных задач в последующих лекциях. Фильтрация изображений является одной из самых фундаментальных операций компьютерного зрения, распознавания образов и обработки изображений. Фактически, с той или иной фильтрации исходных изображений начинается работа подавляющего большинства методов. Рассматриваемые в этой лекции фильтры имеют, таким образом, чрезвычайную важность с точки зрения их применения в различных приложениях.
Линейные фильтры представляют собой семейство фильтров, имеющих очень простое математическое описание. Вместе с тем они позволяют добиться самых разнообразных эффектов. Будем считать, что задано исходное полутоновое изображение A, и обозначим интенсивности его пикселей A(x, y). Линейный фильтр определяется вещественнозначной функцией F, заданной на растре. Данная функция называется ядром фильтра, а сама фильтрация производится при помощи операции дискретной свертки (взвешенного суммирования) (см. также лекцию 7):
Результатом служит изображение B. В определении (8.1) мы опустили пределы суммирования. Обычно ядро фильтра отлично от нуля только в некоторой окрестности N точки (0, 0). За пределами этой окрестности F(i, j) или в точности равно нулю, или очень близко к нему, так что можно им пренебречь. Суммирование в (8.1)
производится по $$(i, j) \in N$$, и значение каждого пикселя B(x, y) определяется пикселями изображения A, которые лежат в окне N, центрированном в точке (x, y) (мы будем обозначать это множество N(x, y) ). Ядро фильтра, заданное на прямоугольной окрестности N, может рассматриваться как матрица m на n, где длины сторон являются нечетными числами. При задании ядра матрицей Mkl, ее следует центрировать:
Также нуждается в дополнительном прояснении ситуация, когда пиксель (x, y) находится в окрестности краев изображения. В этом случае A(x + i, y + j) в определении (8.1) может соответствовать пикселю A, лежащему за пределами изображения A. Данную проблему можно разрешить несколькими способами.
B по краям или закрасив их, к примеру, черным цветом.F(i, j) равномерно среди других пикселей окрестности N(x, y).(-2, 5) имеем A(-2, 5) = A(0, 5) ) или считать постоянным градиент интенсивности вблизи границы ( A(-2, 5) = A(0, 5) + 2(A(0, 5) - A(1, 5)) ).A(-2, 5) = A(2, 5) ).Выбор конкретного способа нужно производить с учетом конкретного фильтра и особенностей конкретного приложения.
Разобрав общее определение линейных фильтров, перейдем к примерам.
Сглаживающие фильтры действуют на изображение аналогично мутному стеклу из примера в начале лекции: изображение становится нерезким, размытым. Простейший прямоугольный сглаживающий фильтр радиуса r задается при помощи матрицы размера (2r + 1) x (2r + 1), все значения которой равны$$\frac{1}{{(2r+1)}^2},$$
а сумма по всем элементам матрицы равна, таким образом, единице. При фильтрации с данным ядром значение пикселя заменяется на усредненное значение пикселей в квадрате со стороной 2r+1 вокруг него. Пример фильтрации при помощи прямоугольного фильтра приведен на рис. 8.1.
Рассмотрим особенности сглаживания при помощи прямоугольного фильтра. Характерной чертой этого фильтра, отличающей его, к примеру, от эффекта расфокусировки линз в реальной жизни, является то, что образом белой точки на черном фоне будет равномерно серый квадрат. Проявления этого эффекта хорошо заметны и на нижнем правом изображении рис. 8.1: длинные узкие объекты "размазываются" в прямоугольники равномерной интенсивности.
(рис 8.1) Прямоугольный сглаживающий фильтр. Слева вверху - пример изображения, справа вверху - результат фильтрации для r = 1, слева внизу - результат фильтрации для r = 3,справа внизу - результат фильтрации для r = 5.Для чего могут применяться сглаживающие фильтры? Одним из их возможных применений является шумоподавление, т.е. задача восстановления исходного изображения, к пикселям которого добавлен случайный шум. Шум меняется независимо от пикселя к пикселю и, при условии, что математическое ожидание значения шума равно нулю, шумы соседних пикселей будут компенсировать друг друга. Чем больше окно фильтрации, тем меньше будет усредненная интенсивность шума, однако при этом будет происходить и существенное размытие значащих деталей изображения.
Естественным предположением об исходном незашумленном изображении будет схожесть значений интенсивности пикселей, находящихся рядом. Причем чем меньше расстояние между пикселями, тем больше вероятность их похожести. Это и отличает исходное незашумленное изображение от шумовой компоненты, для которой схожесть пикселей никак не зависит от расстояния между ними. Исходя из вышесказанного можно предположить, что шумоподавление при помощи прямоугольного фильтра имеет существенный недостаток: пиксели на расстоянии r от обрабатываемого оказывают на результат тот же эффект, что и соседние.
Более эффективное шумоподавление можно, таким образом, осуществить, если влияние пикселей друг на друга будет уменьшаться с расстоянием. Этим свойством обладает гауссовский фильтр с ядром:
$$F_{gauss}(i, j) = \frac{1}{{2 \pi \sigma}^2} \exp \left( - \frac{i^2 + j^2}{{2 \sigma}^2} \right).$$Гауссовский фильтр имеет ненулевое ядро бесконечного размера. Однако ядро фильтра очень быстро убывает к нулю при удалении от точки (0, 0), и потому на практике можно ограничиться сверткой с окном небольшого размера вокруг (0, 0) (например, взяв радиус окна равным $$3 \sigma$$).
Гауссовская фильтрация также является сглаживающей. Однако, в отличие от прямоугольного фильтра, образом точки при гауссовой фильтрации будет симметричное размытое пятно, с убыванием яркости от середины к краям, что гораздо ближе к реальному размытию от расфокусированных линз. Как и следовало ожидать, гауссовская фильтрация более эффективна при шумоподавлении (рис. 8.2): влияние пикселей друг на друга при гауссовой фильтрации обратно пропорционально квадрату расстояния между ними. Как видно из (8.3), коэффициент пропорциональности, а следовательно, и степень размытия, определяются параметром $$\sigma.$$
Если сглаживающие фильтры снижают локальную контрастность изображения, размывая его, то контрастоповышающие фильтры производят обратный эффект. Ядро контрастоповышающего фильтра имеет значение, большее 1, в точке (0, 0), при общей сумме всех значений, равной 1. Например, контрастоповышающим фильтром является фильтр с ядром, задаваемым матрицей:
или матрицей
$$M_2^{contr}= \left( \begin{array}{ccc} -1 -1 -1 \\ -1 9 -1 \\ -1 -1 -1 \end{array} \right)$$Эффект повышения контраста достигается за счет того, что фильтр подчеркивает разницу между интенсивностями соседних пикселей, удаляя эти интенсивности друг от друга (рис. 8.3). Этот эффект будет тем сильней, чем больше значение центрального члена ядра. Характерным артефактом линейной контрастоповышающей фильтрации являются заметные светлые и менее заметные темные ореолы вокруг границ.
(рис 8.2) Шумоподавление при помощи сглаживающих линейных фильтров. Верхний рисунок - фрагмент исходного изображения, второй сверху - сильно зашумленное изображение, третий - результат применения гауссовского фильтра с сигма = 2, четвертый - результат применения прямоугольного фильтра с r = 3. При примерно одинаковой эффективности шумоподавления, гауссовский фильтр лучше восстанавливает детали исходного изображения.
(рис 8.3) Контрастоповышающая фильтрация
На рисунке 8.3 сверху - исходное изображение. Среднее - эффект от применения фильтра с ядром $$M_1^{contr}$$, последнее - эффект от применения фильтра с ядром $$M_2^{contr}$$.
В этом разделе мы кратко рассмотрим линейные фильтры, задаваемые дискретными аппроксимациями дифференциальных операторов (по методу конечных разностей ). Данные фильтры играют важнейшую роль во многих приложениях. В частности, нами будет подробно рассмотрено их применение для задачи поиска границ на изображении. В данном же разделе мы коротко рассмотрим их определения и свойства.
Простейшим дифференциальным оператором является взятие производной по x -координате $$\frac{\partial}{\partial x}$$. Данный оператор определен для непрерывных функций. Существует множество способов определить аналогичный оператор для дискретных изображений при помощи линейного фильтра. В частности, распространенными вариантами являются фильтры Прюита (Prewitt) и Собеля (Sobel).
Фильтр Прюита задается матрицей
$$M_1^{prewitt}= \frac{1}{3} \left( \begin{array}{ccc} -1 0 1 \\ -1 0 1 \\ -1 0 1 \end{array} \right).$$Фильтр Собеля задается матрицей
$$M_1^{sobel}= \frac{1}{4} \left( \begin{array}{ccc} -1 0 1 \\ -2 0 2 \\ -1 0 1 \end{array} \right).$$Фильтры, приближающие оператор производной по y -координате $$\frac{\partial}{\partial y}$$, получаются путем транспонирования матриц.
В отличии от сглаживающих и контрастоповышающих фильтров, не меняющих среднюю интенсивность изображения (сумма элементов ядра равна единице), в результате применения разностных операторов получается, как правило, изображение со средним значением пикселя близким к нулю (сумма элементов ядра равна нулю). Вертикальным перепадам (границам) исходного изображения соответствуют пиксели с большими по модулю значениями на результирующем изображении. Поэтому разностные фильтры называют также фильтрами, находящими границы (рис. 8.4).
(рис 8.4) Нахождение частных производных при помощи линейной фильтрации
На верхнем рисунке - нахождение $$\frac{\partial}{\partial x}$$ при помощи фильтра Собеля с ядром $$M_{sobel}$$, нижний - нахождение $$\frac{\partial}{\partial y}$$ при помощи фильтра Собеля с ядром $$M_{sobel}^T$$. Серый цвет соответстует значению 0.
Аналогично вышеприведенным фильтрам, по методу конечных разностей можно составить фильтры для других дифференциальных операторов. В частности, важный для многих приложений дифференциальный оператор Лапласа ( лапласиан ) $$\Delta = \frac{{\partial}^2}{\partial x^2}+\frac{{\partial}^2}{\partial y^2}$$ можно приблизить для дискретных изображений фильтром с матрицей (один из вариантов):
$$M_\Delta= \left( \begin{array}{ccc} 0 1 0 \\ 1 -4 1 \\ 0 1 0 \\ \end{array} \right).$$Как видно на рис. 8.5, в результате применения дискретного лапласиана большие по модулю значения соответствуют как вертикальным, так и горизонтальным перепадам яркости. $$M_\Delta$$ является, таким образом, фильтром, находящим границы любой ориентации. Нахождение границ на изображении может производиться путем применения этого фильтра и взятия всех пикселей, модуль значения которых превосходит некоторый порог. Однако такой алгоритм имеет существенные недостатки. Главный из них - неопределенность в выборе величины порога. Для разных частей изображения приемлемый результат обычно получается при существенно разных пороговых значениях. Кроме того, разностные фильтры очень чувствительны к шумам изображения. Задача нахождения границ на изображении является, как мы видим, весьма непростой. Мы посвятим ей отдельную лекцию 9.
(рис 8.5) Нахождение границ при помощи линейной фильтрации
Вверху- исходное изображение, внизу - результат применения фильтра $$M_{\Delta}$$. Серый цвет соответстует значению 0
Заметим, что выделение всех пикселей, значения которых по модулю больше некоторого порога, является некоторой нелинейной локальной операцией, которую можно рассматривать как простейший пример нелинейной фильтрации, к рассмотрению которой мы и переходим.
Линейные фильтры, несмотря на разнообразие производимых ими эффектов, не позволяют проделывать некоторые самые естественные операции. Хорошим примером служит пороговая фильтрация, упомянутая нами в предыдущем разделе. Результатом пороговой фильтрации служит бинарное изображение, определяемое следующим образом:
$$B(x, y) = { \left\{ \begin{array}{lrl} 1, \text{если} A(x, y) > \gamma \\ 0, \text{иначе} \\ \end{array} \right. }.$$Величина $$\gamma$$ является порогом фильтрации.В приложениях используется еще целый ряд простейших нелинейных фильтров. Например, модуль изображения, содержащего пиксели с отрицательным значением, или фильтр, обнуляющий все значения пикселей, меньше данного порога.
Более сложным фильтром, задействующим в вычислениях окрестность пикселя, является медиана. Медианная фильтрация определяется следующим образом:
$$B_{median}(x, y) = median \left\{ N(x, y) \right\},$$т.е. результат фильтрации есть медианное значение пикселей
Последней парой фильтров, которые мы рассмотрим в этом разделе, являются фильтры минимум и максимум, которые определяются по правилам
$$B_{\min} (x, y) = \min \left\{ N(x, y) \right\},$$ $$B_{max} (x, y) = \max \left\{ N(x, y) \right\},$$т.е. результат фильтрации есть минимальное и максимальное значения пикселей окрестности.
(рис 8.6) Применение нелинейной фильтрации. Слева вверху - пример изображения, справа вверху – изображение "загрязнено" большим количеством "битых" черных и белых пикселей, внизу слева - результат нелинейной медианной фильтрации с окрестностью 3 x 3 пикселя, внизу справа – для сравнения, результат применения линейного прямоугольного фильтра с той же окрестностью.Данные фильтры, как правило, применяются для бинарных изображений. В применении к бинарным изображениям, минимум и максимум, а также еще несколько составных фильтров, построенных на их основе, называются морфологическими операторами.
Морфологические операторы суть фильтры, применяемые для морфологического анализа бинарных изображений. В морфологическом анализе бинарное изображение рассматривается как вид задания формы двумерной геометрической фигуры (пиксели, равные 1, считаются лежащими внутри фигуры, а равные 0 - вовне). Морфологический анализ активно применяется в таких приложениях, как векторизация изображений, оптическое распознавание символов и другие задачи распознавания образов.
Базовыми морфологическими операторами являются, как уже отмечалось, фильтры минимум и максимум. В результате их применения форма, задаваемая изображением, сужается и, соответственно, расширяется (рис. 8.7), поэтому в морфологическом анализе данные фильтры называют сужающим и расширяющим. Окрестность пикселя (x, y), фигурирующая в определении (8.11), для морфологических операторов называется структурным элементом.
Часто применяемыми составными морфологическими операторами являются открывающий и замыкающий фильтры. Первый состоит в последовательном применении сужающего и расширяющего операторов с одинаковым структурным элементом. Его морфологический эффект заключается в удалении малых изолированных частей фигуры. Применение сначала расширяющего, а затем сужающего оператора дает замыкающий фильтр. Его эффект заключается в заполнении малых изолированных дырок фигуры. В обоих случаях, "малость" объекта определяется размером и формой структурного элемента операторов.
(рис 8.7) Применение морфологических операторов. Структурный элемент - квадратная окрестность 5x5. а - исходное изображение, б - сужающий фильтр, в - расширяющий фильтр, г - открывающий фильтр, д - замыкающий фильтр
Представим себе, что, глядя на какую-нибудь сцену одним глазом, мы подносим к нему стеклянную пластину. Если эта пластина не была идеально прозрачной, то наблюдаемое изображение изменится. В зависимости от стекла, из которого сделана пластина, изменение может быть самым разнообразным. К примеру, если это стекло было цветным, то изображение приобретет соответствующий оттенок, а от мутного стекла - станет размытым.
Фильтрация изображений аналогична такому разглядыванию мира через стеклянную пластину, хотя и позволяет добиться гораздо большего разнообразия эффектов, чем эксперименты с разными пластинами. Под фильтрацией изображений понимают операцию, имеющую своим результатом изображение того же размера, полученное из исходного по некоторым правилам. Обычно интенсивность (цвет) каждого пикселя результирующего изображения обусловлена интенсивностями (цветами) пикселей, расположенных в некоторой его окрестности в исходном изображении.
Правила, задающие фильтрацию (их называют фильтрами ), могут быть самыми разнообразными. В этой лекции мы рассмотрим простейшие фильтры. Заметим, что, согласно предложенному определению, операция, заключающаяся в последовательном применении двух или более фильтраций, тоже является фильтрацией. Таким образом, можно говорить о составных фильтрах, соответствующих комбинациям простых. Изучив основные типы фильтров в данной лекции, мы будем иметь дело с применением фильтров, составленных из них, для решения разнообразных задач в последующих лекциях. Фильтрация изображений является одной из самых фундаментальных операций компьютерного зрения, распознавания образов и обработки изображений. Фактически, с той или иной фильтрации исходных изображений начинается работа подавляющего большинства методов. Рассматриваемые в этой лекции фильтры имеют, таким образом, чрезвычайную важность с точки зрения их применения в различных приложениях.
Линейные фильтры представляют собой семейство фильтров, имеющих очень простое математическое описание. Вместе с тем они позволяют добиться самых разнообразных эффектов. Будем считать, что задано исходное полутоновое изображение A, и обозначим интенсивности его пикселей A(x, y). Линейный фильтр определяется вещественнозначной функцией F, заданной на растре. Данная функция называется ядром фильтра, а сама фильтрация производится при помощи операции дискретной свертки (взвешенного суммирования) (см. также лекцию 7):
Результатом служит изображение B. В определении (8.1) мы опустили пределы суммирования. Обычно ядро фильтра отлично от нуля только в некоторой окрестности N точки (0, 0). За пределами этой окрестности F(i, j) или в точности равно нулю, или очень близко к нему, так что можно им пренебречь. Суммирование в (8.1)
производится по $$(i, j) \in N$$, и значение каждого пикселя B(x, y) определяется пикселями изображения A, которые лежат в окне N, центрированном в точке (x, y) (мы будем обозначать это множество N(x, y) ). Ядро фильтра, заданное на прямоугольной окрестности N, может рассматриваться как матрица m на n, где длины сторон являются нечетными числами. При задании ядра матрицей Mkl, ее следует центрировать:
Также нуждается в дополнительном прояснении ситуация, когда пиксель (x, y) находится в окрестности краев изображения. В этом случае A(x + i, y + j) в определении (8.1) может соответствовать пикселю A, лежащему за пределами изображения A. Данную проблему можно разрешить несколькими способами.
B по краям или закрасив их, к примеру, черным цветом.F(i, j) равномерно среди других пикселей окрестности N(x, y).(-2, 5) имеем A(-2, 5) = A(0, 5) ) или считать постоянным градиент интенсивности вблизи границы ( A(-2, 5) = A(0, 5) + 2(A(0, 5) - A(1, 5)) ).A(-2, 5) = A(2, 5) ).Выбор конкретного способа нужно производить с учетом конкретного фильтра и особенностей конкретного приложения.
Разобрав общее определение линейных фильтров, перейдем к примерам.
Сглаживающие фильтры действуют на изображение аналогично мутному стеклу из примера в начале лекции: изображение становится нерезким, размытым. Простейший прямоугольный сглаживающий фильтр радиуса r задается при помощи матрицы размера (2r + 1) x (2r + 1), все значения которой равны$$\frac{1}{{(2r+1)}^2},$$
а сумма по всем элементам матрицы равна, таким образом, единице. При фильтрации с данным ядром значение пикселя заменяется на усредненное значение пикселей в квадрате со стороной 2r+1 вокруг него. Пример фильтрации при помощи прямоугольного фильтра приведен на рис. 8.1.
Рассмотрим особенности сглаживания при помощи прямоугольного фильтра. Характерной чертой этого фильтра, отличающей его, к примеру, от эффекта расфокусировки линз в реальной жизни, является то, что образом белой точки на черном фоне будет равномерно серый квадрат. Проявления этого эффекта хорошо заметны и на нижнем правом изображении рис. 8.1: длинные узкие объекты "размазываются" в прямоугольники равномерной интенсивности.
(рис 8.1) Прямоугольный сглаживающий фильтр. Слева вверху - пример изображения, справа вверху - результат фильтрации для r = 1, слева внизу - результат фильтрации для r = 3,справа внизу - результат фильтрации для r = 5.Для чего могут применяться сглаживающие фильтры? Одним из их возможных применений является шумоподавление, т.е. задача восстановления исходного изображения, к пикселям которого добавлен случайный шум. Шум меняется независимо от пикселя к пикселю и, при условии, что математическое ожидание значения шума равно нулю, шумы соседних пикселей будут компенсировать друг друга. Чем больше окно фильтрации, тем меньше будет усредненная интенсивность шума, однако при этом будет происходить и существенное размытие значащих деталей изображения.
Естественным предположением об исходном незашумленном изображении будет схожесть значений интенсивности пикселей, находящихся рядом. Причем чем меньше расстояние между пикселями, тем больше вероятность их похожести. Это и отличает исходное незашумленное изображение от шумовой компоненты, для которой схожесть пикселей никак не зависит от расстояния между ними. Исходя из вышесказанного можно предположить, что шумоподавление при помощи прямоугольного фильтра имеет существенный недостаток: пиксели на расстоянии r от обрабатываемого оказывают на результат тот же эффект, что и соседние.
Более эффективное шумоподавление можно, таким образом, осуществить, если влияние пикселей друг на друга будет уменьшаться с расстоянием. Этим свойством обладает гауссовский фильтр с ядром:
$$F_{gauss}(i, j) = \frac{1}{{2 \pi \sigma}^2} \exp \left( - \frac{i^2 + j^2}{{2 \sigma}^2} \right).$$Гауссовский фильтр имеет ненулевое ядро бесконечного размера. Однако ядро фильтра очень быстро убывает к нулю при удалении от точки (0, 0), и потому на практике можно ограничиться сверткой с окном небольшого размера вокруг (0, 0) (например, взяв радиус окна равным $$3 \sigma$$).
Гауссовская фильтрация также является сглаживающей. Однако, в отличие от прямоугольного фильтра, образом точки при гауссовой фильтрации будет симметричное размытое пятно, с убыванием яркости от середины к краям, что гораздо ближе к реальному размытию от расфокусированных линз. Как и следовало ожидать, гауссовская фильтрация более эффективна при шумоподавлении (рис. 8.2): влияние пикселей друг на друга при гауссовой фильтрации обратно пропорционально квадрату расстояния между ними. Как видно из (8.3), коэффициент пропорциональности, а следовательно, и степень размытия, определяются параметром $$\sigma.$$
Если сглаживающие фильтры снижают локальную контрастность изображения, размывая его, то контрастоповышающие фильтры производят обратный эффект. Ядро контрастоповышающего фильтра имеет значение, большее 1, в точке (0, 0), при общей сумме всех значений, равной 1. Например, контрастоповышающим фильтром является фильтр с ядром, задаваемым матрицей:
или матрицей
$$M_2^{contr}= \left( \begin{array}{ccc} -1 -1 -1 \\ -1 9 -1 \\ -1 -1 -1 \end{array} \right)$$Эффект повышения контраста достигается за счет того, что фильтр подчеркивает разницу между интенсивностями соседних пикселей, удаляя эти интенсивности друг от друга (рис. 8.3). Этот эффект будет тем сильней, чем больше значение центрального члена ядра. Характерным артефактом линейной контрастоповышающей фильтрации являются заметные светлые и менее заметные темные ореолы вокруг границ.
(рис 8.2) Шумоподавление при помощи сглаживающих линейных фильтров. Верхний рисунок - фрагмент исходного изображения, второй сверху - сильно зашумленное изображение, третий - результат применения гауссовского фильтра с сигма = 2, четвертый - результат применения прямоугольного фильтра с r = 3. При примерно одинаковой эффективности шумоподавления, гауссовский фильтр лучше восстанавливает детали исходного изображения.
(рис 8.3) Контрастоповышающая фильтрация
На рисунке 8.3 сверху - исходное изображение. Среднее - эффект от применения фильтра с ядром $$M_1^{contr}$$, последнее - эффект от применения фильтра с ядром $$M_2^{contr}$$.
В этом разделе мы кратко рассмотрим линейные фильтры, задаваемые дискретными аппроксимациями дифференциальных операторов (по методу конечных разностей ). Данные фильтры играют важнейшую роль во многих приложениях. В частности, нами будет подробно рассмотрено их применение для задачи поиска границ на изображении. В данном же разделе мы коротко рассмотрим их определения и свойства.
Простейшим дифференциальным оператором является взятие производной по x -координате $$\frac{\partial}{\partial x}$$. Данный оператор определен для непрерывных функций. Существует множество способов определить аналогичный оператор для дискретных изображений при помощи линейного фильтра. В частности, распространенными вариантами являются фильтры Прюита (Prewitt) и Собеля (Sobel).
Фильтр Прюита задается матрицей
$$M_1^{prewitt}= \frac{1}{3} \left( \begin{array}{ccc} -1 0 1 \\ -1 0 1 \\ -1 0 1 \end{array} \right).$$Фильтр Собеля задается матрицей
$$M_1^{sobel}= \frac{1}{4} \left( \begin{array}{ccc} -1 0 1 \\ -2 0 2 \\ -1 0 1 \end{array} \right).$$Фильтры, приближающие оператор производной по y -координате $$\frac{\partial}{\partial y}$$, получаются путем транспонирования матриц.
В отличии от сглаживающих и контрастоповышающих фильтров, не меняющих среднюю интенсивность изображения (сумма элементов ядра равна единице), в результате применения разностных операторов получается, как правило, изображение со средним значением пикселя близким к нулю (сумма элементов ядра равна нулю). Вертикальным перепадам (границам) исходного изображения соответствуют пиксели с большими по модулю значениями на результирующем изображении. Поэтому разностные фильтры называют также фильтрами, находящими границы (рис. 8.4).
(рис 8.4) Нахождение частных производных при помощи линейной фильтрации
На верхнем рисунке - нахождение $$\frac{\partial}{\partial x}$$ при помощи фильтра Собеля с ядром $$M_{sobel}$$, нижний - нахождение $$\frac{\partial}{\partial y}$$ при помощи фильтра Собеля с ядром $$M_{sobel}^T$$. Серый цвет соответстует значению 0.
Аналогично вышеприведенным фильтрам, по методу конечных разностей можно составить фильтры для других дифференциальных операторов. В частности, важный для многих приложений дифференциальный оператор Лапласа ( лапласиан ) $$\Delta = \frac{{\partial}^2}{\partial x^2}+\frac{{\partial}^2}{\partial y^2}$$ можно приблизить для дискретных изображений фильтром с матрицей (один из вариантов):
$$M_\Delta= \left( \begin{array}{ccc} 0 1 0 \\ 1 -4 1 \\ 0 1 0 \\ \end{array} \right).$$Как видно на рис. 8.5, в результате применения дискретного лапласиана большие по модулю значения соответствуют как вертикальным, так и горизонтальным перепадам яркости. $$M_\Delta$$ является, таким образом, фильтром, находящим границы любой ориентации. Нахождение границ на изображении может производиться путем применения этого фильтра и взятия всех пикселей, модуль значения которых превосходит некоторый порог. Однако такой алгоритм имеет существенные недостатки. Главный из них - неопределенность в выборе величины порога. Для разных частей изображения приемлемый результат обычно получается при существенно разных пороговых значениях. Кроме того, разностные фильтры очень чувствительны к шумам изображения. Задача нахождения границ на изображении является, как мы видим, весьма непростой. Мы посвятим ей отдельную лекцию 9.
(рис 8.5) Нахождение границ при помощи линейной фильтрации
Вверху- исходное изображение, внизу - результат применения фильтра $$M_{\Delta}$$. Серый цвет соответстует значению 0
Заметим, что выделение всех пикселей, значения которых по модулю больше некоторого порога, является некоторой нелинейной локальной операцией, которую можно рассматривать как простейший пример нелинейной фильтрации, к рассмотрению которой мы и переходим.
Линейные фильтры, несмотря на разнообразие производимых ими эффектов, не позволяют проделывать некоторые самые естественные операции. Хорошим примером служит пороговая фильтрация, упомянутая нами в предыдущем разделе. Результатом пороговой фильтрации служит бинарное изображение, определяемое следующим образом:
$$B(x, y) = { \left\{ \begin{array}{lrl} 1, \text{если} A(x, y) > \gamma \\ 0, \text{иначе} \\ \end{array} \right. }.$$Величина $$\gamma$$ является порогом фильтрации.В приложениях используется еще целый ряд простейших нелинейных фильтров. Например, модуль изображения, содержащего пиксели с отрицательным значением, или фильтр, обнуляющий все значения пикселей, меньше данного порога.
Более сложным фильтром, задействующим в вычислениях окрестность пикселя, является медиана. Медианная фильтрация определяется следующим образом:
$$B_{median}(x, y) = median \left\{ N(x, y) \right\},$$т.е. результат фильтрации есть медианное значение пикселей
Последней парой фильтров, которые мы рассмотрим в этом разделе, являются фильтры минимум и максимум, которые определяются по правилам
$$B_{\min} (x, y) = \min \left\{ N(x, y) \right\},$$ $$B_{max} (x, y) = \max \left\{ N(x, y) \right\},$$т.е. результат фильтрации есть минимальное и максимальное значения пикселей окрестности.
(рис 8.6) Применение нелинейной фильтрации. Слева вверху - пример изображения, справа вверху – изображение "загрязнено" большим количеством "битых" черных и белых пикселей, внизу слева - результат нелинейной медианной фильтрации с окрестностью 3 x 3 пикселя, внизу справа – для сравнения, результат применения линейного прямоугольного фильтра с той же окрестностью.Данные фильтры, как правило, применяются для бинарных изображений. В применении к бинарным изображениям, минимум и максимум, а также еще несколько составных фильтров, построенных на их основе, называются морфологическими операторами.
Морфологические операторы суть фильтры, применяемые для морфологического анализа бинарных изображений. В морфологическом анализе бинарное изображение рассматривается как вид задания формы двумерной геометрической фигуры (пиксели, равные 1, считаются лежащими внутри фигуры, а равные 0 - вовне). Морфологический анализ активно применяется в таких приложениях, как векторизация изображений, оптическое распознавание символов и другие задачи распознавания образов.
Базовыми морфологическими операторами являются, как уже отмечалось, фильтры минимум и максимум. В результате их применения форма, задаваемая изображением, сужается и, соответственно, расширяется (рис. 8.7), поэтому в морфологическом анализе данные фильтры называют сужающим и расширяющим. Окрестность пикселя (x, y), фигурирующая в определении (8.11), для морфологических операторов называется структурным элементом.
Часто применяемыми составными морфологическими операторами являются открывающий и замыкающий фильтры. Первый состоит в последовательном применении сужающего и расширяющего операторов с одинаковым структурным элементом. Его морфологический эффект заключается в удалении малых изолированных частей фигуры. Применение сначала расширяющего, а затем сужающего оператора дает замыкающий фильтр. Его эффект заключается в заполнении малых изолированных дырок фигуры. В обоих случаях, "малость" объекта определяется размером и формой структурного элемента операторов.
(рис 8.7) Применение морфологических операторов. Структурный элемент - квадратная окрестность 5x5. а - исходное изображение, б - сужающий фильтр, в - расширяющий фильтр, г - открывающий фильтр, д - замыкающий фильтр
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.