Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обработка и анализ медицинских изображений.pdf
Скачиваний:
32
Добавлен:
04.09.2023
Размер:
4.59 Mб
Скачать

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

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

Согласно таблице 1.2 можно выделить две группы методов обработки изображений: методы обработки в пространственной области и методы обработки в частотной области.

3.1. Методы обработки изображений в пространственной области

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

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

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

50

3.1.1. Геометрические преобразования. Масштабирование изображения

Масштабирование изображения позволяет сжать или растянуть плоскость изображения по горизонтали и (или) вертикали. При этом изменяется ширина и (или) высота изображения.

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

Чаще всего яркость пикселя на масштабированном изображении принимается равной яркости ближайшего к нему пикселя исходного изображения:

Bs (xi ,y j ) = B(ns xi ,ms y j ), xi =[0, N 1], y j =[0,M 1],

ns = N ,ms = M , Ns M s

где Bs (xi ,y j ) – яркость пикселя масштабированного изображения; ns и ms

коэффициенты масштабирования изображения по горизонтали и по вертикали; N и Ns – размер изображения по горизонтали до и после

масштабирования (в пикселях); M и Ms – размер изображения по вертикали до и после масштабирования (в пикселях). Координаты xi и yj определяют

соответственно столбец и строку пикселя на изображении и изменяются в пределах высоты и ширины изображения.

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

51

ближайшему соседу, билинейная, биквадратная и бикубическая интерполяции; заданные значения функции изображены цветными точками, значение функции в интерполируемой точке – черными точками.

Рис. 3.1. Различные виды интерполяции функций двух переменных [15]

Метод билинейной интерполяции является обобщением метода линейной интерполяции функций одной переменной для функций двух переменных. Обобщение основано на применении обычной линейной интерполяции сначала в направлении одной из координат, а затем в перпендикулярном направлении.

Результаты масштабирования с использованием

 

метода

билинейной

бикубической

 

ближайшего

 

интерполяции

интерполяции

 

соседа

 

 

 

 

 

 

Исходное

 

 

 

изображение

 

 

 

 

 

 

 

Рис. 3.2. Искажения изображения при масштабировании различными методами

Функция билинейной интерполяции имеет вид: F(x,y) =b1 +b2 x +b3x +b4 xy . Она интерполирует значения исходной функции

двух переменных в произвольном прямоугольнике по четырём её значениям в вершинах прямоугольника и экстраполирует функцию на всю остальную поверхность [15].

52

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

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

3.1.2. Амплитудные преобразования. Пространственная фильтрация

Перепадам яркости на изображении соответствуют контуры объектов; их также называют краями, границами.

Простейшей моделью края на изображении является прямая, разделяющая две области различной яркости B1 и B2 (рис. 3.3) [13]. Предположим, что край располагается вдоль прямой, заданной нормальным

уравнением xsin θ− y cosθ+ρ = 0 , где ρ

длина перпендикуляра, опущенного на прямую из начала координат; θ – угол (измеренный в положительном направлении) между положительным направлением оси x и направлением этого перпендикуляра. Тогда яркость изображения можно представить в виде:

B(x,y) = B1 + (B2 B1)u(z), где u(z) –

Рис.3.3. Перепад яркости

на изображении [13]

 

 

 

 

1, z > 0

единичная

ступенчатая

функция:

 

 

u(z) = 1/2, z = 0, z = xsin θ− y cosθ+ρ.

 

 

 

 

0, z < 0

 

 

 

 

Учитывая,

что u(z) =

z

 

 

δ(τ)dτ

интеграл

от дельта-функции, частные

−∞

производные функции яркости на изображении описываются уравнениями: dBdx =sin θ(B2 B1)δ(z), dBdy = −cosθ(B2 B1)δ(z).

Рассмотрим группу элементов изображения размером 2 × 2 [13]:

Bi, j+1 Bi+1, j+1

53

Bi, j Bi+1, j

Производные в центральной точке этой группы (общей вершине четырех элементов) можно оценить как средние двух конечно-разностных аппроксимаций:

dBdx 21s [(Bi+1, j+1 Bi, j+1)+ (Bi+1, j Bi, j )];

dBdy 21s [(Bi+1, j+1 Bi+1, j )+ (Bi, j+1 Bi, j )],

где s – расстояние между центрами соседних элементов.

Градиент яркости dBdx ,dBdy – это вектор, который указывает

направление возрастания яркости на изображении и численно равен скорости возрастания яркости в этом направлении.

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

 

 

Маска

Маска

Изображение

Изображение

 

 

Маска

Фильтрующая

функция

Соседи Центральный пиксель

Рис. 3.4. Пространственная фильтрация [13]

Пространственные фильтры изменяют значения яркости пикселей в соответствии с яркостью соседних пикселей. Соседние пиксели определяются размером матрицы или маски с центром в самом пикселе. Эти

54

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

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

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

Если

Bi, j представляет

яркость пикселя с координатами (xi ,y j ),

пиксели,

окружающие Bi, j ,

могут быть обозначены следующим образом

(матрица 3 × 3):

 

 

 

 

 

 

 

 

 

 

 

 

Bi1, j1

Bi, j1

Bi+1, j1

 

 

 

Bi1, j

Bi, j

Bi+1, j

Bi1, j+1 Bi, j+1 Bi+1, j+1

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

Bi, j = Bi, j1 + Bi1, j + 2Bi, j + Bi+1, j + Bi, j+1.

Нелинейный фильтр – нелинейная комбинация яркостей окружающих Bi, j элементов, например:

Bi, j = max{Bi1, j1,Bi+1, j1,Bi1, j+1,Bi+1, j+1}.

Свертка – это функция, согласно которой яркость данного пикселя заменяется взвешенной суммой яркостей его соседей.

Ядро свертки – матрица, определяющая размер окрестности пикселя, участвующей в свертке, и задающая веса каждого из его соседей.

Имеются элементы изображения B и ядро свертки K:

Bi1, j1

Bi, j1

Bi+1, j1

Bi1, j

Bi, j

Bi+1, j

Bi1, j+1

Bi, j+1

Bi+1, j+1

Ki1, j1

Ki, j1

Ki+1, j1

Ki1, j

Ki, j

Ki+1, j

Ki1, j+1

Ki, j+1

Ki+1, j+1

55

Тогда:

Bi, j = 1

n =i +1

,

m = j +1

Kn,mBn,m ,

q n =i 1

,

m = j 1

где q – нормировочный коэффициент, равный наибольшему из Kn,m или 1.

В случае полутонового изображения, имеющего 256 градаций яркости (от 0 до 255, яркостное разрешение 8 бит), если новое значение Bi, j < 0, оно

заменяется на 0; если новое значение Bi, j > 255 , оно заменяется на 255.

Чем больше по модулю значение коэффициента Kn,m , тем больший вклад даст пиксель Bn,m в новое значение Bi, j . Если Kn,m = 0, сосед Bn,m не вносит вклад в новое значение Bi, j , при этом в качестве Bn,m может быть и сам Bi, j .

Таблица 3.1

Классификация пространственных фильтров

Тип фильтра

Фильтры

Линейный

Высокочастотный Градиентный, лапласиан

Низкочастотный Сглаживающий, гауссиан

Нелинейный

Высокочастотный Градиентный, Робертса, Собела, Превитта,

дифференцирующий, сигма

Низкочастотный Медианный, N-го порядка, низкочастотный

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

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

56

например в целях улучшения обнаружения интересующих врача (исследователя) объектов.

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

Ядро свертки градиентного фильтра имеет следующий вид: a b c

d x d c b a

где a, b, c и d – целые, x = 1 или 0.

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

При задании направления D от отрицательного коэффициента ядра к положительному фильтр осветляет пиксели там, где яркость увеличивается по направлению D, и затемняет там, где яркость уменьшается (рис. 3.5).

Градиент № 1

Градиент № 2

Рис. 3.5. Действие градиентных фильтров на изображение [13]

Градиент № 1 осветляет пиксели, если яркость увеличивается вдоль направления с северо-востока (СВ) на юго-запад (ЮЗ), и затемняет пиксели, если яркость уменьшается по тому же направлению. Такая обработка подчеркивает СВ-границы светлых участков. Градиент № 2 осветляет пиксели, если яркость увеличивается вдоль направления с ЮЗ на СВ, и затемняет пиксели, если яркость уменьшается по тому же направлению. Такая обработка подчеркивает ЮЗ-границы светлых участков.

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

57

которых изменяется вдоль направления, заданного коэффициентами a, b, c и d. Измененное изображение содержит черно-белые границы на месте исходных краев, остальные части изображения затемнены.

Исходное изображение

Градиент № 1

Отфильтрованное изображение

 

–1

–1

0

 

 

–1

0

1

 

 

0

1

1

 

 

Градиент № 2

 

 

–1

–1

0

 

 

–1

1

1

 

 

0

1

1

 

Рис. 3.6. Градиентные фильтры с центральными коэффициентами, равными нулю и единице [13]

Если центральный коэффициент равен единице, градиентный фильтр выделяет те же изменения, но накладывает их на исходное изображение. Измененное изображение выглядит так же, как исходное, но с осветленными краями. Этот фильтр можно использовать для выделения зернистости и восприятия текстуры (рис. 3.6).

При этом:

–1

–1

0

–1

–1

0

0

0

0

–1

1

1

= –1

0

1

+ 0

1

0

0

1

1

0

1

1

0

0

0

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

3 × 3

5 × 5

7 × 7

58

Рис. 3.7. Градиентная фильтрация с ядрами свертки различных размеров [13]

Кроме того, размер границ отфильтрованного изображения изменяется в зависимости от размера ядра свертки: чем больше элементов содержит ядро, тем шире выделенные границы (рис. 3.7).

К градиентным фильтрам относятся фильтры Превитта и Собела, вид ядер свертки которых представлен в прил. 2.

Фильтр лапласиан осветляет изменения яркости, окружающие пиксель, выделяет контур объектов и подчеркивает детали изображения. В отличие от градиентного фильтра он действует по всем направлениям (рис. 3.8).

Ядро свертки лапласиана имеет вид: a d c b x b c d a

где a, b, c, d – целые отрицательные числа или ноль.

а

б

в

Рис. 3.8. Фильтр лапласиан: а – исходное изображение; б – выделение контуров; в – осветление контуров [13]

Фильтр лапласиан производит 2 различных эффекта в зависимости от того, равен или больше его центральный коэффициент x сумме модулей окружающих его коэффициентов: x 2(a + b + c + d ).

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

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

59

изменениями яркости (рис. 3.9). Больший центральный коэффициент соответствует осветлению фильтром менее выдающихся деталей изображения.

При этом:

–1

–1

–1

–1

–1

–1

0

0

0

–1

9

–1 =

–1

8

–1 +

0

1

0

–1

–1

–1

–1

–1

–1

0

0

0

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

Исходное изображение

Лапласиан № 1

Отфильтрованное изображение

 

–1

–1

–1

 

 

–1

8

–1

 

 

–1

–1

–1

 

Лапласиан № 2

–1 –1 –1

–1 9 –1

–1 –1 –1

Рис. 3.9. Фильтры лапласианы с центральными коэффициентами, значения которых отличаются на единицу [13]

Кроме того, чем больше ядро фильтра, тем шире выделенные границы

(рис. 3.10).

Вид ядер свертки лапласианов представлен в прил. 2.

3 × 3

5 × 5

7 × 7

Рис. 3.10. Фильтрация лапласианами с ядрами свертки различных размеров [13]

60

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

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

Ядро № 1

Ядро № 2

–1

0

1

–1

–1

–1

–1

0

1

0

0

0

–1

0

1

1

1

1

Bi, j = max{ Bi+1, j1 Bi1, j1 + Bi+1, j Bi1, j + Bi+1, j+1 Bi1, j+1 , Bi1, j+1 Bi1, j1 + Bi, j+1 Bi, j1 + Bi+1, j+1 Bi+1, j1}.

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

Ядро № 1

Ядро № 2

–1

0

1

–1

–2

–1

–2

0

2

0

0

0

–1

0

1

1

2

1

Bi, j = max{ Bi+1, j1 Bi1, j1 + 2Bi+1, j 2Bi1, j + Bi+1, j+1 Bi1, j+1 , Bi1, j+1 Bi1, j1 + 2Bi, j+1 2Bi, j1 + Bi+1, j+1 Bi+1, j1}.

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

61

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

(рис. 3.11).

Исходное изображение Фильтр Превитта Фильтр Собела

Рис. 3.11. Фильтры Собела и Превитта [13]

Нелинейный градиентный фильтр осветляет контуры, когда изменения яркости происходят вдоль вертикальной оси. Новое значение яркости пикселя – максимум из значений модуля отклонения его яркости от яркости его верхнего соседа и модуля отклонения яркости двух его соседей слева:

Bi1, j1 Bi, j1

 

 

 

Bi1, j

 

Bi, j

 

Bi, j = max{ Bi, j1 Bi, j , Bi1, j1 Bi1, j }.

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

Bi1, j1 Bi, j1

Bi1, j Bi, j

Bi, j = max{ Bi1, j1 Bi, j , Bi, j1 Bi1, j }.

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

Bi1, j1

Bi, j1

Bi1, j

Bi, j

Bi, j = max{ Bi1, j Bi, j , Bi1, j1 Bi, j , Bi, j1 Bi, j }.

62

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

Низкочастотные фильтры. Низкочастотные фильтры уменьшают изменения яркости. Они размазывают изображение, стирая детали и размывая края.

Сглаживающий фильтр имеет ядро вида a d c

b x b c d a

где a, b, c и d – целые положительные числа; x = 0 или 1 (рис. 3.12).

Исходное изображение

Обработанное изображение

Рис. 3.12. Сглаживающий фильтр [13]

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

Для заданного набора коэффициентов (a, b, c, d) сглаживающее ядро с центральным коэффициентом, равным 0 (x = 0), оказывает большее размывающее воздействие, чем ядро с центральным коэффициентом, равным единице (x = 1) (рис. 3.13).

Ядра сглаживающего фильтра представлены в прил. 2.

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

63

Гауссиан – это усредняющий фильтр, ядро которого имеет вид: a d c

 

 

b

x

b

 

 

 

 

 

c

d

a

 

 

 

где a, b, c и d – целые положительные числа, а x > 1.

 

 

 

Ядро № 1

Отфильтрованное

 

Ядро № 2

Отфильтрованное

 

изображение

 

изображение

 

 

 

 

 

 

0

1

0

 

2

2

2

 

1

0

1

 

2

1

2

 

0

1

0

 

2

2

2

 

 

Ядро № 3

 

Отфильтрованное

 

Ядро № 4

 

Отфильтрованное

 

 

изображение

 

 

изображение

 

 

 

 

 

 

 

 

 

 

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

1

1

1

1

1

1

1

 

 

 

 

 

1

1

1

1

1

1

1

Рис. 3.13. Сглаживающие фильтры с различными размерами апертур [13]

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

Исходное изображение

Обработанное изображение

Рис. 3.14. Низкочастотные фильтры гауссианы [13]

Ядра фильтра гауссиана представлены в прил. 2.

64

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

Если

Bi, j M < S , то Bi, j = Bi, j ,

иначе Bi, j = M , где M – среднее

значение

Bi, j и его соседей; S – стандартное отклонение. Каждый пиксель

принимает значение M, если его значение яркости не входит в диапазон

[M – S, M + S].

 

 

Исходное изображение

Обработанное изображение

Рис. 3.15. Фильтр низких частот [13]

Результат действия такого фильтра представлен на рис. 3.15.

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

Медианный фильтр – это фильтр низких частот:

Bi, j = медиана последовательности Bn,m .

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

Медианой дискретной последовательности (для нечетного числа элементов N) является тот ее элемент, для которого существуют (N – 1)/2 элементов, меньших или равных ему по значению, и (N – 1)/2 элементов, больших или равных ему по значению.

Для медианы med последовательности f(j) справедливо:

65

med{c f ( j)}= c med{f ( j)}, med{с+ f ( j)}= с+ med{f ( j)},

где с – постоянная, но для двух произвольных последовательностей f(j) и g(j): med{f ( j) + g( j)}med{f ( j)}+ med{g( j)}.

а б

Рис 3.16. Зашумленное изображение клеток (а) и результат медианной фильтрации (б)

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

Фильтр N-го порядка – это расширение медианного фильтра. Он ставит в соответствие каждому пикселю N-е значение яркости его соседа (когда они

расставлены в порядке возрастания), N задается пользователем:

 

 

 

 

Bi, j = N-е значение из последовательности Bn,m ,

 

 

 

где Bn,m расположены в порядке возрастания.

 

 

 

 

 

 

 

 

Определение порядка фильтра N

 

 

Таблица 3.2

 

 

 

 

 

 

 

N-й порядок фильтра

0

1

2

3

4

5

6

7

8

 

 

Новое значение яркости пикселя

4

5

5

6

8

9

10

12

13

 

66

Пусть имеются элементы изображения B:

Bi1, j1

Bi, j1

Bi+1, j1

 

13

10

9

Bi1, j

Bi, j

Bi+1, j

 

12

4

8

Bi1, j+1

Bi, j+1

Bi+1, j+1

5

5

6

В табл. 3.2 указаны значения яркостей центрального пикселя для разных значений N-го порядка.3

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

При заданном размере f фильтра N-й порядок может ранжироваться от 0

до f 2 1. Например,

если фильтр имеет размер 3, то N-й порядок

ранжируется от 0 до 8 = 32 – 1.

 

Нулевой порядок

Порядок 4

Порядок 8

(размывает изображение,

(эквивалентен медианному

(сглаживает изображение,

размывает яркие области)

фильтру)

размывает яркие области)

Рис. 3.17. Фильтрация N-го порядка [13]

Для заданного размера фильтра f × f (рис. 3.17):

– если N < ( f 2 1) / 2, фильтр N-го порядка размывает яркие области (или расширяет темные области);

если N = 0, каждый пиксель заменяется его локальным минимумом;

если N = ( f 2 1) / 2, каждый пиксель заменяется локальным значением

своей медианы. Темные пиксели внутри объектов удаляются, как и яркие пиксели на фоне. В целом изображения объектов и фона не изменяются;

– если N > ( f 2 1) / 2, фильтр N-го порядка размывает яркие области (или темные области);

67

– если N = f 2 1, каждый пиксель заменяется локальным максимумом.

Алгоритм выделения краев Кэнни. Алгоритм Кэнни (оператор Кэнни,

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

Алгоритм Кэнни включает несколько этапов:

1. Сглаживание изображения с помощью Гауссиана, производится для достижения оптимального баланса между фильтрацией шума и размытием краев на изображении [16].

Ядро свертки при этом имеет вид:

2

4

5

4

2

4

9

12

9

4

5

12

15

12

5

4

9

12

9

4

24 5 4 2

Размер ядра фильтра влияет на работу детектора: чем больше размер, тем ниже чувствительность детектора к шуму. Кроме этого, ошибка определение положения границы (локализации края) немного увеличивается

сувеличением размера ядра фильтра.

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

Используются ядра фильтров Gx и Gy:

 

Ядро Gx

Ядро Gy

 

 

 

 

 

 

1

0

–1

1

2

1

 

 

 

 

 

 

 

2

0

–2

0

0

0

 

 

 

 

 

 

 

1

0

–1

–1

 

–2

–1

 

 

 

 

 

Величина

(амплитуда)

и

направление

градиента

в

каждой точке

на

 

 

 

 

 

 

 

 

 

 

G

y

 

 

 

 

 

 

2

2

 

 

изображении

определяются

как

 

 

и

 

 

 

G =

 

Gx

+Gy

 

 

 

θ = arctg

 

 

 

 

 

 

 

 

 

 

 

 

Gx

соответственно. Углы направления градиента округляются до одного из возможных значений: 0, 45, 90, 135 градусов.

68

3. Подавление немаксимумов. Истончение

краев до

толщины в

1 пиксель за счет подавления немаксимальных

значений

амплитуды

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

Для каждого пикселя градиента проверяют окрестность размерами 3 × 3. Если значение в центре меньше одного из двух чисел вдоль направления градиента, оно заменяется на ноль (рис. 3.18). На рис. 3.18 линиями обозначены направления градиента яркости на изображении; обведенные значения градиента сохраняются вдоль сплошных линий (локальные максимумы) и заменяются на ноль вдоль точечных линий. Решение о сохранении значения градиента вдоль пунктирных линий принимается, исходя из дополнительных условий при проверке других пикселей, принадлежащих границе.

Градиент яркости изображения Подавление немаксимумов

Результат подавления немаксимумов

Рис. 3.18. Подавление немаксимумов [17]

69

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

4. Обнаружение краев с помощью двойной пороговой обработки. Потенциальные границы на изображении определяются двумя значениями порогов [16].

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

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

Заполнение

пробелов в контуре

Рис. 3.19. Двойная пороговая обработка [17]

Результаты пороговой обработки с T1 и T2 соединяют следующим образом: края, полученные в результате пороговой обработки с порогом T2, связывают в один контур, пока не будет достигнут пробел, тогда за следующим соседним пикселем обращаются к результату обработки, полученному с порогом T1, и используют его пока край на изображении, полученном с порогом T2, не возникнет снова (рис. 3.19). Иначе говоря, если значение градиента в какой-то части изображения превысит верхний порог, то оно будет частью границы. Значения градиента ниже верхнего порога также будут относиться к границе, пока не станут ниже нижнего порога. Если же на участке изображения нет ни одной точки со значением градиента,

70