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

Faq 14.04.2019
Faq

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

$$ \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 приведен пример гауссовой линейной фильтрации зашумленного изображения.

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

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

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

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

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 есть фильтр «Матрица свёртки», который упрощает поиск необходимого Вам матричного преобразования.

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

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

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

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

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

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

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


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


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

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

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

Заключение

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

ФИЛЬТРОВАНИЕ (от греч. phil"tron- любовный напиток; таковым считалось особо проз- б. м. э. т. хххш. рачное вино), один из способов отделения жидкой фазы от твердой (осадков, мути) путем пропускания системы через пористые материалы, задерживающие плотные частицы. От процеживания Ф. отличается применением более плотных пористых материалов: в профильтро-

Рисунок 1. Воронка с углом в 60° и складывание бумаги для фильтра Берцепиуса.

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

Ряс. 2.Рисунок 3.

Рисунок 2. Воронка со стеклянными палочками для ускорения фильтрования. Рисунок 3. Нуча: а-к васосу; б-для спуска фильтрата. товят для них фильтры Берцелиуса (рис. 1), особенно удобные в тех случаях, когда желательно собрать осадок. Для ускорения Ф. применяют граненые воронки (см. Воронка, рис. 8) или вставляют между стенками воронки и фильтром стеклянные палочки (рис. 2). На во-

Рисунок 4.

Рисунок 5. Рисунок 4. Дырчатые фарфоровые воронки. Рисунок 5. Плоенный (складчатый) фильтр Гей- Люссака. ронках Бюхнера (см. Воронка, рис. 3) и иучах (рис. 3), действующих при разрежении воздуха в приемнике, применяют плоские фильтры в виде кружочков соответствующей величины. Для ускорения Ф. в тех случаях, когда не требуется сохранения осадка, применяются воронки других форм (см. Воронка, рис. 1,2) и дырчатые воронки (рис. 4); для всех этих воронок готовят складчатые или плоенные фильтры Гей-Люссака, складывая для них бумагу веерообразно (рис. 5). Воронки с фильтрами должны применяться в штативах, во избежание переливания жидкости (рисунок 6); при Ф. непосредственно в склянку следует между горлышком склянки и воронкой закладывать нитку, бумажную полоску или стеклянную палочку, создавая таким образом щель для выхода воздуха. За последнее время у нас вырабатываются стеклянные фильтры с пористым стеклянным дном, через к-рые фильтруют без бумаги (рис. 7). Первой выпустила такие филыгры фабрика Шотта"в,Иене. Величина пор этих фильтров обозначается номерами: N° 1 пропускает еще частицы диаметром около 100 ц № 2-50 (I, К» 3-20 и № 4-5 ц. Чаще все." го применяющиеся формы этих стеклянных фильтров (Гослаборреактивсбыт) представлены на рис. 7; формы «д» и «е» служат для отсасывания жидкости от легко взмучиваемых осадков. Для облегчения фильтрования пользуются методами укрупнения осадков (напр. предварительным центрифугированием), понижения вязкости" жидкой фазы (фильтрование при нагреве,см. Воронка, рис. 10 и 11) или предварительно жидкость осветляют, вызывая в ней образование крупнозернистых осадков, увлекающих (адсорбирующих) мелкую муть. Для этой цели добавляют в осветляемую жидкость напр. взбитый в пену яичный белок, желатину, сыворотку (при наличии дубильных веществ),

Рисунок 6. Установки для фильтрования.

/

f=™*3j

Рисунок 7. Стеклянные пористые фильтры. молоко (к кислым жидкостям, напр. ягодным сокам) или же вскипяченные с водой обрывки фильтровальной бумаги, осветляющие глины (флоридин, гумбрин) и т. п.; иногда добавляют белки и затем свертывают их кипячением. Ф. через пористые свечи(Беркефельд, Шамберлан и др.)-см. Беркефелъ- gj* da свеча, Фильтры ^ в лаб. практике. - В производственном масштабе применяют методы Ф., допускающие большую производительность; гл. образом пользуются фильтрпрессами - аппаратами, изобретенными инж. Нидге-Рисунок 8. Детали фильтрпрес- момв 1828 г. (рис. 8). са и схема его действия: А- Для лабораторных жидкость; .Б-промой; В- /■ птттрчньгх ч пябот cv-ш.1Дкость; С-фильтрат. ^аптечных; pauoi оу ществуют малые фильтрпрессы. Большей производительностью обладают фильтры непрерывного действия, барабанные, дисковые и плоскостные (планфиль-тры). О фильтровании газов-см. Противогазы. - В капельном анализе (качественном микроанализе по Фейглю и Тананаеву) под Ф. подразумевают прохождение жидкости по ка-пилярам фильтровальной бумаги; «фильтратом» в этом смысле считается пятно жидкости на нек-ром расстоянии от капли, нанесенной на Какую-либо ТОЧКУ бумаги. И. Обергард*

Значительную часть обработки изображений можно выполнить, не повторяя для каждого нового изображения статистический анализ, описанный в предыдущем разделе. Вполне достаточным оказывается ограниченный объем априорных сведений. Допустим, нам известна матрица совместной встречаемости для «идеального» изображения и требуется улучшить качество зашумленного варианта этого изображения. Если наибольшие элементы матрицы расположены на главной диагонали или вблизи нее, то это означает, что большая часть пикселов имеет тот же цвет, что и соседние пикселы. Если мы хотим выровнять гистограмму такого изображения, то, как показано в разд. 3.2, целесообразно воспользоваться правилом 3. Если требуется устранить шум, то замена значения каждого пиксела зашумленного изображения некоторой взвешенной суммой значений соседних пикселов приведет к уменьшению изменчивости значений смежных пикселов, и мы получим изображение, более близкое к оригиналу (см. пример 3.5). Таким образом мы приходим к соотношению, характеризующему связь исходного изображения и изображения подвергнутого фильтрации:

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

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

Результат применения такого фильтра состоит в подавлении одних частот и усилении других в зависимости от Н(и,

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

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

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

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

Рис. 3.9 (см. скан) Исходное изображение использованное для...

Действительно, если применить уравнение (3.6) к четко очерченному краю изображения

то оказывается, что

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

Результаты применения данного фильтра можно также оценивать, рассматривая фурье-преобразование функции Введем обозначение

Воспользуемся уравнением (34)

Это выражение можно упростить, воспользовавшись тождеством

и выполнив затем простейшие тригонометрические преобразования, в результате выражение (3 8) принимает следующий вид

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

8.1. Введение

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

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

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

8.2. Линейные фильтры

Определение

(8.1)

Результатом служит изображение B . В определении (8.1) мы опустили пределы суммирования. Обычно ядро фильтра отлично от нуля только в некоторой окрестности N точки (0, 0) . За пределами этой окрестности F(i, j) или в точности равно нулю, или очень близко к нему, так что можно им пренебречь. Суммирование в (8.1) производится по , и значение каждого пикселя B(x, y) определяется пикселями изображения A , которые лежат в окне N , центрированном в точке (x, y) (мы будем обозначать это множество N(x, y) ). Ядро фильтра, заданное на прямоугольной окрестности N , может рассматриваться как матрица m на n , где длины сторон являются нечетными числами. При задании ядра матрицей M kl , ее следует центрировать:

(8.2)

Также нуждается в дополнительном прояснении ситуация, когда пиксель (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) ).

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

Разобрав общее определение линейных фильтров, перейдем к примерам.



Рекомендуем почитать

Наверх