Получение и обработка изображений на ЭВМ
.pdf
ское представление двумерной функции, описывающей маску этого фильтра, похоже на коробку или параллелепипед (рис. 10.5), отсюда и англоязычное название – box-фильтр:
Рис. 10.5. Графическое представление функции усредняющего фильтра (box-фильтр) и его функция
|
1 |
|
M N |
f (x, y) |
|
g(i, j). |
|
M |
|
||
|
N i 0 j 0 |
||
В данной формуле
f (x, y) – значение пикселя выходного изображения;
g(i, j) – текущее значение пикселя исходного изображения, соответствующее центру маски;
M и N – ширина и высота маски соответственно.
Эта операция аналогична операции линейной фильтрации с коэффициентами маски, равными 1/(MN). Из формулы следует, что арифметический метод усреднения – частный случай алгоритма линейной свертки и может применяться для устранения высокочастотных помех и сглаживания изображений. Алгоритм арифметического усреднения эффективен лишь для слабо зашумленных изображений.
10.3.2. Геометрический усредняющий фильтр
Геометрическое усреднение может быть записано в виде следующей формулы:
|
|
1 |
|
|
|
|
M N |
|
MN |
|
(10.7) |
f (x, y) |
g(i, j) . |
||||
|
|
|
|
||
i 0 j 0 |
|
|
|||
120
При таком усреднении происходит сглаживание изображения, аналогичное арифметическому усреднению, наблюдается ухудшение резкости, свойственное всем фильтрам из этого класса, но отдельные объекты исходного изображения искажаются меньше.
Этот фильтр так же, как усредняющий арифметический, может использоваться для подавления высокочастотного аддитивного шума, имея при этом лучшие статистические характеристики, но новые значения яркости дольше вычисляются.
10.3.3. Гармонический усредняющий фильтр
Фильтр на базе гармонического усреднения основывается на выражении
f (x, y) |
MN |
|
. |
(10.8) |
|
M N |
1 |
||||
|
|
|
|
|
|
|
|
(i, j) |
|
|
|
|
i 0 j 0 g |
|
|
||
Этот фильтр хорошо работает с импульсными шумами типа «соль», т. е. белыми точками, и не работает с шумами типа «перец».
10.3.4. Контргармонический усредняющий фильтр
Контргармонический фильтр представляет собой обобщение арифметического и гармонического усреднения. Этот фильтр меняет яркость пикселя согласно функции
M N g(i, j)Q 1
f (x, y) |
i 0 j 0 |
, |
(10.9) |
|
M N |
||||
|
|
|
||
|
g(i, j)Q |
|
|
i 0 j 0
где Q – порядок фильтра.
Контргармонический фильтр идеально подходит для уменьшения или полного устранения импульсных шумов типа «соль-и- перец», причем при положительных значениях Q подавляются шумы «перец», а при отрицательных – «соль». Однако одновременное
121
удаление биполярного импульсного шума (т. е. белых и черных точек) невозможно.
При Q = 0 контргармонический фильтр превращается в арифме-
тический, а при Q = 1 – в гармонический, поэтому данный фильтр можно считать обобщенным фильтром из класса усредняющих.
10.3.5. Фильтр Гаусса
При задании фильтров можно использовать маски с разными весовыми коэффициентами (см. рис. 10.3). Логично предположить, что пиксели, расположенные ближе к анализируемому пикселю, оказывают большее влияние на яркость, вычисляемую в процессе фильтрации. К такому типу фильтров относятся фильтры, значения весов которых описывается колоколообразной функцией Гаусса (рис. 10.6):
|
|
1 |
e |
(x )2 |
|
||
f (x) |
|
2 2 |
, |
(10.10) |
|||
|
2 |
||||||
|
|
|
|
|
|||
где параметры μ – координата центральной точки, σ – вещественная константа, определяющая ширину колокола. Также на рис. 10.6 представлены двумерные варианты задания функции Гаусса.
|
1 |
|
(x2 y2) |
|
2 2 |
||
G |
2 2 |
e |
|
а |
б |
в |
Рис. 10.6. Разные представления функции Гаусса: аналитическое,
а– в виде поверхности; б – в виде полутонового изображения;
в– в виде маски с коэффициентами
122
Чем больше σ, тем больше размывается изображение при применении фильтра. Значение данного параметра следует выбирать в зависимости от того, насколько сильно необходимо размыть изображение. Обычно радиус фильтра r выбирается равным 3σ.
Свойства фильтра Гаусса
1. Фильтр Гаусса является сепарабельным (т. е. разделимым). Это значит, что двумерная функция Гаусса может быть представлена в виде произведения двух одномерных функций:
|
|
1 |
|
|
x2 y2 |
|
|
1 |
|
|
x2 |
|
1 |
|
|
y2 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
2 |
|
2 |
2 |
, (10.11) |
||||||||||||
G |
(x, y) |
|
|
exp |
2 |
|
|
|
|
exp |
2 |
|
|
|
|
exp |
2 |
|
|
|
2 |
|
|
|
|
||||||||||||||
|
|
|
|
|
2 |
|
|
|
2 |
|
|
|
|||||||
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а это позволяет снизить количество вычислений с 4r2 до 4r на каждый пиксель.
2. Свертка два раза с ядром фильтром радиуса σ дает тот же результат, что с фильтром радиуса σ√2.
10.4. Высокочастотные фильтры
Высокочастотные фильтры используются для выделения перепадов яркости. На их базе строятся алгоритмы подчеркивания границ и выделения небольших объектов. Они усиливают резкие перепады на изображении, в то время как плавные подавляются. Таким образом, после обработки высокочастотным фильтром изображение становится более резким.
Основной класс высокочастотных фильтров выделяет края. Краевым называется пиксель, в котором резко изменяется локальная яркость изображения. Методы выделения таких пикселей называют детекторами края. Связная совокупность таких пикселей образует границы объектов, представленных на изображении.
Края на изображении можно разделить на два основных типа: в виде ската и в виде крыши (рис. 10.7).
123
Рис. 10.7. Основные типы краев
Как правило, резкое изменение яркости можно определить, анализируя первую производную функции яркости (рис 10.8). Производная характеризует величину градиента. Граница объекта на изображении обычно перпендикулярна к вектору градиента.
Рис. 10.8. Функция яркости и ее первая производная (максимум производной соответствует краю)
Для вычисления производной применяют высокочастотные фильтры, которые аппроксимируют вычисление производных по направлению. При этом x равно 1 или 2. В ядрах высокочастотных фильтров часть коэффициентов имеет отрицательные значения, но сумма всех коэффициентов равна нулю, что означает вычисление разности значений яркости соседних пикселей. Для ускорения вычислений все коэффициенты, как правило, целочисленные.
10.4.1. Фильтр Робертса
Метод Робертса является самым простым, быстрым и весьма эффективным. Он работает с маской 2 × 2, представленной на рис. 10.9.
124
Рис. 10.9. Ядра фильтра Робертса для вычисления производных по Х и по Y
В результате свертки изображения с этими ядрами получаем оценку градиента (т. е. перепада яркости) по направлениям Gx, Gy. Суммарное значение градиента всех детекторов края вычисляется по формуле
G G2 |
G2 |
x |
y |
или упрощенно |
(10.12) |
G = |Gx| + |Gy|.
10.4.2. Фильтр Превитта
Метод Превитта использует две ортогональные матрицы (ядра Превитта) размерностью 3 × 3 для приближенного вычисления производных по X и по Y:
1 |
0 |
1 |
|
|
0 |
|
; |
Gx 1 |
1 |
||
|
0 |
|
|
1 |
1 |
|
|
|
|
|
(10.13) |
1 |
1 |
1 |
|
Gy 0 |
0 |
0 . |
|
|
1 |
|
|
1 |
1 |
||
10.4.3. Фильтр Собела
Фильтр Собела использует разные веса в ядрах. Классическим вариантом фильтра Собела являются следующие ядра:
125
1 |
0 |
1 |
|
|
|
2 |
0 |
|
; |
Gx |
2 |
|||
|
1 |
0 |
|
|
|
1 |
|
||
|
|
|
|
(10.14) |
1 |
2 |
1 |
||
Gy 0 |
0 |
0 . |
||
|
|
2 |
|
|
1 |
1 |
|||
10.4.4. Фильтр Лапласа
Ранее описанные фильтры использовали аппроксимацию первой производной по оси Х и по оси Y. В фильтре Лапласа используется аппроксимация вторых производных по этим осям (рис. 10.10). В этом случае градиент вычисляется независимо от направления и границы выделяются точнее, чем в предыдущих методах. Лапласиан от функции f (x, y) – это сумма вторых производных:
d2 f |
d2 f |
(10.15) |
|
L( f (x, y)) dx2 dy2 . |
|||
|
|||
Рис. 10.10. Вторая производная функции яркости (меняет знак, т. е. проходит через ноль в точке соответствующей краю)
126
Для дискретных функций вторые производные могут быть аппроксимированы следующим образом:
L( f (x, y)) f (x 1, y) f (x 1, y) |
(10.16) |
||
f (x, y 1) f (x, y 1) 4 f (x, |
y). |
||
|
|||
Выражение (10.16) позволяет реализовать фильтр Лапласа посредством свертки некоторого ядра w(s, t) (10.17) с изображением f (x, y).
w(s,t) |
|
0 |
1 |
0 |
|
|
|
||||
|
1 |
4 |
1 |
(10.17) |
|
|
|
0 |
1 |
0 |
|
После свертки близкие к нулю значения соответствуют краевым пикселям. Ядро фильтра Лапласа может быть описано разными способами, например:
|
1 |
1 |
1 |
|
|
|
|
||||
|
1 |
8 |
1 |
|
; |
|
1 |
1 |
1 |
|
|
|
|
|
(10.18) |
||
1 |
2 |
1 |
|
|
|
|
2 |
4 |
2 . |
||
12 1
10.4.5.Выделение краев методом Кэнни
Цель алгоритма Кэнни – более точное выделение не краев, а границ на изображении (рис. 10.11). Алгоритм основан на использовании двух порогов при анализе матрицы градиентов. Пороги выделяют сильные и слабые границы. Причем слабые границы отмечаются, только если они соединены с сильными границами.
127
Рис. 10.11. Пример последовательной реализации алгоритма выделения границ методом Кэнни
Алгоритм Кэнни состоит из следующих шагов. Шаг 1. Сгладить изображение.
Выполнить сглаживание изображения фильтром Гаусса. Радиус и сигма задаются.
Шаг 2. Вычислить градиенты всех пикселей.
Применить фильтр Собела для вычисления значений градиента во всех пикселях изображения. Направление градиента округляется до 0, 45, 90 и 135°.
Шаг 3.Подавить не-максимумы модуля градиента.
Краям соответствуют максимальные значения градиентов. Отобрать их, сравнивая значения модуля градиента, ортогонально вычисленным направлениям градиента. Если направление градиента в пикселе равно 0°, анализируется модуль градиента ортогонально расположенных соседних пикселей (вертикальные соседи); пиксель может быть граничным, если его градиент больше, чем у соседей. Аналогично анализируются значения модулей градиента для трех других направления градиента.
128
После подавления не-максимумов края становятся более точными, тонкими и связными. Простой выбор локальных максимумов выделит мало краевых пикселей.
Шаг 4. Выполнить двойную пороговую фильтрацию.
Для ранее отобранных пикселей применить порог, чтобы уточнить, являются ли они граничными. Чем ниже порог, тем больше граничных пикселей будет отобрано и тем более зашумленным будет результат. Наоборот, высокий порог может отбросить слабые края и получить границу с множеством разрывов.
Для выделения границ используются два значения порога: если значение градиента в пикселе выше верхнего порога, он принимает максимальное значение (граница в нем считается достоверной), если меньше нижнего порога, пиксель не считается граничным. Пиксели со значениями градиента, попадающими в диапазон между порогами, считаются неоднозначными, им присваивают фиксированное среднее значение, а их статус уточняется на следующем шаге.
Значения порогов задаются.
Шаг 5. Уточнить границы путем трассировки области неоднозначности.
Итоговые границы определяются путем подавления всех краевых пикселей, не связанных с ранее определенными достоверными граничными пикселями. Выделяются группы пикселей, получивших на предыдущем этапе среднее значение. Если они соединены с одной из достоверных границ, они относятся к границе, а в противном случае подавляются. Пиксель добавляется к группе, если он соседствует с ней по одному из восьми направлений.
10.5. Нелинейная фильтрация
Низкочастотные методы фильтрации приводят к сглаживанию резких перепадов яркости на изображении. Они линейны и оптимальны при гауссовском распределении помех и наблюдаемых данных. На реальных изображениях в районе границ разных объектов распределение яркости имеет другой вид. В таких случаях при фильтрации используют нелинейные методы.
129
