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

Материал из Техническое зрение
Перейти к: навигация, поиск

Содержание

Модель шума "соль и перец".

Для бинарных изображений наиболее удобной и соответствующей природе изображения является модель шума замещения типа "соль и перец". Под шумом Salt-and-Pepper (соль и перец) на бинарном изображении понимают замещение $1$ на $0$ с вероятностью $p$ и замещение $0$ на $1$ c вероятностью $q$. Табл. 3.2.1 переходных вероятностей для такого бинарного шума имеет вид:

{Переходные вероятности для бинарного шума "соль и перец"}

${\rm Im}[x,y]\to {\rm Im}^\prime[x,y]$ ${\rm Im}^\prime [x,y]=1$ ${\rm Im}^\prime [x,y]=0$
${\rm Im} [x,y]=1$ $1-p$ $p$
${\rm Im}[x,y]=0$ $q$ $1-q$


На рис. 10 - 16 показаны примеры искусственного зашумления исходного бинарного изображения лейкоцитов (рис. 9) специально сгенерированным шумом "соль и перец". Как видно, чем больше параметры зашумления $p$ и $q$, тем более искаженным выглядит изображение. При больших вероятностях замещения человеческий глаз уже с трудом различает общие очертания объектов изображения (рис. 15, 16).

3-2-9.jpg 3-2-10.jpg
Исходное изображение, $p=0, q=0$ Зашумление бинарного изображения шумом "соль и перец", $p=0{,}02$, $q=0{,}02$
3-2-11.jpg 3-2-12.jpg
Зашумление бинарного изображения шумом "соль и перец", $p=0{,}1$, $q=0{,}1$ Зашумление бинарного изображения шумом "соль и перец", $p=0{,}2$, $q=0{,}2$
3-2-13.jpg 3-2-14.jpg
Зашумление бинарного изображения шумом "соль и перец", $p=0{,}25$, $q=0{,}25$ Зашумление бинарного изображения шумом "соль и перец", $p=0{,}3$, $q=0{,}3$
3-2-15.jpg 3-2-16.jpg
Зашумление бинарного изображения шумом "соль и перец", $p=0{,}4$, $q=0{,}4$ Зашумление бинарного изображения шумом "соль и перец", $p=0{,}45$, $q=0{,}45$

Структура оконного фильтра.

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

$\textit{Входное изображение}$ $X[i,j]$ - массив $l\times k$ элементов $x_{ij}$ ($i=1,{\ldots},l$; $j=1,{\ldots},k)$ каждый из которых соответствует некоторой точке (пикселу) изображения и принимает значения $x_{ij} \in {\{}0,1{\}}$.

$\textit{Выходное изображение}$ $Y$[$i,j$] - массив $l\times k$ элементов $y_{ij}$ ($i=1,{\ldots},l$; $j$=1,{\ldots},$k)$ каждый из которых соответствует некоторой точке (пикселу) изображения и принимает значения $y_{ij} \in {\{}0,1{\}}$.

$\textit{ППР - правило принятия решения}$ - правило, по которому принимается решение о значении элемента выходного изображения $y_{ij}$ ($i=1,{\ldots},l$; $j=1,{\ldots},k)$.

$\textit{Апертура}$ или $\textit{Окрестность}$ точки (пиксела) - множество пикселов изображения расположенное некоторым образом относительно базового пиксела.

$\textit{Базовым}$ называется пиксел, для которого применяется ППР. Положение апертуры на изображении определяется координатами базового пиксела апертуры. Базовый пиксел может находиться и не в геометрическом центре апертуры. Апертура определяется как массив $d\times c$ элементов $\Omega _{ij}$ ($i=1,{\ldots},d$; $j=1,{\ldots},c)$, каждый из которых соответствует точке (пикселу) апретуры и принимает значения $\Omega _{ij} \in {\{}0,1{\}}$. Также, при определении апертуры, указываются координаты базового пиксела апертуры (горизонтальная координата $i\in \overline {1,d} $; вертикальная координата $j\in \overline {1,c} )$ относительно элемента апертуры с координатами $\left( {i=1; j=1} \right)$ (левый верхний угол массива $d\times c)$. Значение элемента апертуры, равное $0$, показывает, что данный пиксел не включен в апертуру, равное $1$ - что данный пиксел включен в апертуру.

Число элементов или размер апертуры обозначается $n$, $$ n=\sum\limits_{i=1}^d {\sum\limits_{j=1}^c {\Omega _{ij} } } . $$ Число единиц будем обозначать $k_1 $, число нулей - $k_0 $.



Апертура может иметь любую произвольную конфигурацию, например

$$\Omega _{ij} ={\begin{array}{*{20}c} 1 & 0 & 1 0 & 1 & 0 1 & 0 & 1 \end{array} }.$$

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

Логическая фильтрация помех.

Назовем \textit{проколотой} окрестность, в которой базовый пиксел не учитывается при сборе статистики. В таблице 3.2.2 приведен пример проколотой окрестности $3\times 3$.

Пример проколотой окрестности $3\times 3$

$(-1, -1)$ $(-1, -1)$
$(0, -1)$ $(1, -1)$
$(-1, 0)$ $(0, 0)$ $(1, 0)$
$(0, -1)$ $(1, -1)$

Проколотая окрестность $3\times 3$ содержит $8$ пикселов, влияющих на принятие решения. При $\textit{логической}$ фильтрации помех решение принимается после опроса проколотой окрестности $\Omega _{ij} $ для каждого пиксела $y_{ij} $ следующим образом:

$$ y_{ij} = \begin{cases} 1, &\mbox{ если все пикселы в } \Omega _{ij} \mbox{ равны 1,} \cr 0,&\mbox{ если все пикселы в }\Omega _{ij} \mbox{ равны 0,} \cr x_{ij} , &\mbox{ в остальных случаях.} \end{cases} $$

Смысл этого выражения заключается в том, что если все соседние с центральным пикселы голосуют в пользу $0$, центральный пиксел устанавливается в $0$. Если все соседние пикселы голосуют в пользу $1$, центральный пиксел устанавливается в $1$. Если соседи не голосуют единогласно, центральный пиксел остается без изменений.

Такая фильтрация хорошо справляется с редкими одиночными (изолированными) пикселами-артефактами (как на рис. \refFigure{3_2_10}), но при более интенсивных шумах данный алгоритм оказывается практически бесполезен, так как изолированные белые и черные шумовые точки встречаются все реже. Для таких случаев требуется более мощное решающее правило.

Бинарная медианная фильтрация.

$\textit{Медианный фильтр}$ действует следующим образом. Пусть выбрана некоторая (чаще всего не проколотая) апертура $\Omega_{ij} $, содержащая нечетное число $n$ элементов. После опроса апертуры получаем $\left\{ {x^1,\ldots ,x^n} \right\}$ - последовательность из $n$ чисел. ППР для медианы заключается в том, что мы упорядочиваем элементы последовательности $\left\{{x^1,\ldots,x^n} \right\}$ в порядке возрастания и в качестве значения выхода $y_{ij} $ выбираем "средний по номеру" элемент упорядоченной последовательности $\left\{ {x^1,\ldots,x^n} \right\}$, то есть значение, стоящее на $\left( {\frac{n+1}{2}} \right)$ месте в упорядоченном списке значений входных пикселов.


Для $\textit{бинарного медианного фильтра}$ мы получаем следующее ППР:

$$ y_{ij} = \begin{cases} 1, &\mbox{ если в апертуре }\Omega _{ij} \mbox{ больше единиц чем нулей}, \cr 0, &\mbox{ если в апертуре }\Omega _{ij} \mbox{ больше нулей чем единиц}. \end{cases} $$

На рис. 17 - 22 приводятся примеры фильтрации бинарного изображения с различными степенями зашумления медианным фильтром с размером окна $3\times 3$. Как видно, данный фильтр хорошо справляется со слабой и средней степенью зашумления (рис. 17 - 20), однако при дальнейшем увеличении мощности шума фильтр с апертурой $3\times 3$ начинает ошибаться (рис. 21, 22).

3-2-17.jpg 3-2-18.jpg
Слабая степень зашумления изображения Результат фильтрации исходного изображения медианой med $3\times 3$
3-2-19.jpg 3-2-20.jpg
Cредняя степень зашумления Результат фильтрации исходного изображения изображения med $3\times 3$
3-2-21.jpg 3-2-22.jpg
Сильная степень зашумления Результат фильтрации исходного изображения изображения med $3\times 3$
3-2-23.jpg 3-2-24.jpg
Высокая степень зашумления Результат фильтрации исходного изображения изображения медианой med $5\times 5$
3-2-25.jpg 3-2-26.jpg
Результат фильтрации изображения med $7\times 7$ Результат фильтрации изображения med $9\times 9$
3-2-27.jpg 3-2-28.jpg
Результат фильтрации изображения med 15$\times $15 Результат фильтрации изображения med 31$\times $31

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


Как видно из рис. 24 - 26, с увеличением размера окна растет способность медианного фильтра подавлять шумовые точки. Однако при слишком больших размерах апертуры очертания объектов оказываются слишком сильно искажены (рис. 27, 28). Поэтому в каждом конкретном случае фильтры необходимо настраивать в зависимости от наблюдаемой степени искажений характерных размеров наблюдаемых объектов.


Рассмотрим еще раз $\textit{медиану}$ как правило принятия решения в бинарном оконном фильтре, действующем на изображении в присутствии шума "соль и перец". Легко заметить, что такое правило принятия решения соответствует $\textit{максимуму апостериорной вероятности}$ в том случае, если

$$ p = q < 0,5. $$

Действительно, если в среднем инвертирование белых и черных элементов происходит с равной вероятностью (но не более 1/2), то в апертуре будет наблюдаться в среднем больше тех элементов, каких там и было больше до зашумления. Однако это не обязательно так, если вероятность перехода $0\to 1$ больше вероятности перехода $1\to 0$ или наоборот. В этом случае "средняя" ранговая оценка может оказаться неоптимальной.

Бинарная ранговая фильтрация.

Правило принятия решения для $\textit{рангового}$ или $\textit{процентильного}$ фильтра имеет вид, аналогичный ППР для медианного фильтра,

$$ y_{ij} =\left\{ {\begin{array}{l} 1,\mbox{ если число единиц в апертуре }\Omega _{ij} :k_1 \ge k; 0,\mbox{ если число нулей в апертуре }\Omega _{ij} :k_0 \ge n+1-k; \end{array}} \right. $$

где $k=const$ - задаваемое значение, причем $0<k \leqslant n$.


Процентильные фильтры обозначаются $\left( {{k}/{n}} \right)_n $.

Легко заметить, что медианный фильтр есть частный случай процентильного $\left( {{k}/{n}} \right)_n $ при $k=\left( {\frac{n+1}{2}} \right)$.

В свете приведенных выше рассуждений ясно, что фильтрацию с более "низкими" рангами, чем медиана следует применять в том случае, если вероятность перехода $1\to 0$ существенно больше вероятности перехода $0\to 1$. С более "высокими" рангами следует работать в том случае, если вероятность перехода $0\to 1$ существенно больше вероятности перехода $1\to 0$. Предельным случаем такого "асимметричного" шума является $\textit{униполярный}$ шум c параметрами ($p=0, q>0$) или ($q=0, p>0$). В этих случаях оптимальная ранговая фильтрация принимает вид $\textit{максимального}$ или$\textit{ минимального}$ фильтра соответственно.

Взвешенные ранговые фильтры.

Как уже говорилось, использование процентильных фильтров для подавления помех основано на предположении, что объекты (однородные области) на исходном изображении настолько велики, что число положений апертуры $\Omega _{ij} $, в которых она целиком (всеми пикселами) попадает на объект или также целиком на фон, намного больше числа "переходных состояний" (рис. 29).

3-2-29.jpg 3-2-30.jpg
Положение фильтра относительно объекта "Переходные состояния" фильтра на сцене вида "шахматная доска" (положение фильтра относительно объекта)

Если это предположение не выполняется (например, сцена имеет вид "шахматной доски" (рис. 30), то процентильная фильтрация приведет лишь к усилению помех (увеличению числа ошибок на сцене). Это связано с тем, что, подсчитывая число единиц и нулей в апертуре, мы как бы заранее предполагаем, что на исходной сцене (в неискаженном состоянии) все соседние пикселы в подавляющем большинстве случаев имели одинаковые значения. И поэтому число единиц воспринимается как число свидетельств в пользу предположения, что базовый пиксел до зашумления имел значение $1$, а число нулей - что его значение было $0$. Пусть, однако, нам известен только минимальный размер объектов и минимальное расстояние между ними. Повысить устойчивость фильтрации можно, придав более близким точкам окрестности большее влияние на окончательный результат, чем дальним. Это можно осуществить при помощи $\textit{матрицы весов}$. При этом значения каждого пиксела апертуры $x_{ij} $ при подсчете модифицированного числа единиц $k$ умножается на определенный вес

$$ k =\sum\limits_{x_{ij} \in \Omega } {q_{ij} x_{ij} } , $$

где $q_{ij} $ - весовые коэффициенты элементов апертуры (целые числа).

Модифицированный размер апертуры для взвешенного фильтра теперь имеет вид

$$ n=\sum\limits_{x_{ij} \in \Omega } {q_{ij} } . $$

ППР $(k/n)_n $ для взвешенного процентильного фильтра практически эквивалентно прежнему с учетом новых значений $k $ и $n$. Приведем два возможных примера весовых матриц (1) и (2).

0 0 1 0 0
0 2 4 2 0
1 4 8 2 1
0 2 4 2 0
0 0 1 0 0,
1 0 1
0 1 0
1 0 1.

Матрица (1) реализует описанный выше принцип "штрафа за удаление". Общий размер апертуры в этом случае равен $n=36$. Матрица (2) является весовой матрицей типа "маска" (матрица весов состоит из нулей и единиц). Данная маска с $n=5$ позволяет фильтровать даже сцены типа "шахматная доска" (см. рис.30).

Анизотропная фильтрация

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

Пусть фиксированы параметры $n_1 $, $n_2 $ и $k_1 $, $k_2$ $\left( {0<k_1 \le n_1 ,\mbox{ }0<k_2 \le n_2 } \right)$. Введем переменную состояния $z$, принимающую значения $0$ и $1$.

ППР для анизотропного фильтра опишем как последовательность выполняемых операций для каждой строки $( {j= {1,\ldots, m} })$.

$\textit{Шаг 0.}$ Присвоить $z:=0$; $i:=1$.

$\textit{Шаг 1.}$ Просмотреть $n_2 $ элементов строки, начиная с элемента $x_{ij} $. Если число единиц среди них превышает $k_2 $, то $z:=1$.

$\textit{Шаг 2. }$Просмотреть $n_1 $ элементов строки, начиная с элемента $x_{ij} $. Если число нулей среди них превышает $k_1 $, то $z:=0$.

$\textit{Шаг 3.} $Принять решение $y_{ij} :=z$.

$\textit{Шаг 4.}$ $i:=i+1$. Перейти к шагу $1$, если строка еще не окончена.

Таким образом, состояние (а следовательно, и выход этого фильтра) изменится только в том случае, если будет принято решение $({k_2 }/{n_2 })_\infty $ по единице или решение $({k_1 }/ {n_1 })_\infty $ по нулю. Индекс $\infty $, в отличие от $n$, в процентильных фильтрах означает, что память о принятом однажды решении может сохранятся бесконечно долго, если не встретится таких положений, в которых будет принято противоположное решение). Этот фильтр применяется только для помеховой фильтрации изображений.

Расширение - сжатие (простая морфология).

$\textit{Расширением}$ называется итеративно применяемый к бинарному изображению максимальный фильтр с квадратной апертурой размера $3\times 3$ пиксела. Соответственно, $\textit{сжатием}$ называется итеративно применяемый минимальный фильтр с той же апертурой $3\times 3$. Параметром, определяющим свойства фильтрации, при этом считается $\textit{количество циклов}$ сжатия и расширения.

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

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

Начнем с удаления внешних "выступов" формы. Для этого используется последовательность операций $\textit{расширение - сжатие}$. На первом этапе этой процедуры выполняется операция расширения светлого фона (т. е. сжатия темного объекта) с таким числом циклов, которое полностью удаляет ("съедает") внешние "выступы" формы.

3-2-31.jpg

Изображение с "дефектами" типа "дырок" и "выступов"

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


Рассмотрим теперь аналогичную технику удаления внутренних дефектов формы ("дырок"). Для этого используется обратный порядок операций: $\textit{сжатие - расширение}$. На первом этапе этой процедуры выполняется операция сжатия фона (т. е. расширения объекта) необходимым числом циклов, которое удаляет ("заращивает") внутренние "дыры" и "каналы". Однако внешний размер объекта при этом увеличивается, внешние дефекты, также увеличиваются в размерах, в связи с чем после этого необходимо выполнить расширение фона (сжатие объекта) с тем же числом циклов. В результате выполнения всей операции сжатия-расширения в целом размеры и внутренняя целостность объекта оказываются восстановлены, но внешние дефекты формы сохраняются (рис. 34, 35).

3-2-32.jpg 3-2-33.jpg
Результат сжатия объекта Результат расширения после сжатия объекта (удаление внешних "выступов" формы)
3-2-34.jpg 3-2-35.jpg
Результат расширения объекта Результат сжатия после расширения объекта (удаление внутренних "дырок" формы)
3-2-36.jpg 3-2-37.jpg
Результат расширения - сжатия Результат сжатия - расширения после расширения - сжатия (полное восстановление формы)

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



Операции расширения - сжатия представляют собой простейший эвристический вариант операций $\textit{математической морфологии}$ (Серра), которая будет подробно рассматриваться в главе 6 данной книги.

Стирание бахромы.

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

Пусть в качестве апертуры выбрана окрестность второго порядка:

3-2-371.jpg

Введем понятие крайнего верхнего пиксела.

Крайним верхним пикселом будем называть такой пиксел $X_{ij} $, в апертуре $\Omega _{ij} $ которого наблюдаются следующие сочетания:

а)

0 0 0
0 1 0
1 0 0

б)

0 0 0
0 1 0
0 1 0

в)

0 0 0
0 1 0
0 0 1

г)

0 0 0
0 1 0
1 1 0

д)

0 0 0
0 1 0
0 1 1

е)

0 0 0
0 1 0
1 1 1

(а) - е) - фрагменты изображения, $0$ - элемент фона, $1$ - элемент изображения).

С помощью поворота матриц а) - е) на $90$°, $180$°, $270$° мы получим определение соответственно крайних левого нижнего и правого пикселов.

Все краевые пикселы стираются при фильтрации. Стираются также изолированные пикселы, не имеющие соседних пикселов в апертуре:

ж)

0 0 0
0 1 0
0 0 0.


Остальные (пикселы, не являющиеся крайними или изолированными) переносятся на отфильтрованное изображение без изменения.

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

Наконец, можно определить алгоритм комбинированного стирания бахромы: и по единицам (по объекту) и по нулям (по фону) одновременно. Стирание бахромы используется как предварительная обработка перед оконтуриванием. Комбинированное стирание бахромы может быть использовано также для подавления помех без искажения контуров.

Полезные ссылки

  1. ☝ К началу
  2. ☜ Нелинейная фильтрация бинарных и полутоновых изображений
Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты