Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_по_ изображениям.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
7.5 Mб
Скачать

6. Библиографический список

1. Мартынов Н.Н., Иванов А.П. Matlab 5.x. Вычисления, визуализация, программирование. М.: Кудиц-образ, 2000. 336 с.

2. Потемкин В.Г. Введение в Matlab. М.: Диалог-МИФИ, 2000. 256 с.

3. Рудаков П.И., Сафонов И.В. Обработка сигналов и изображений. Matlab 5.x / Под общ. ред. В.Г. Потемкина. М.: Диалог-МИФИ, 2000. 416 с.

Лабораторная работа № 2 методы фильтрации изображений

1. Цель работы

Целью работы является знакомство с основными методами фильтрации применительно к различным задачам обработки изображений и способами их реализации в MATLAB Image Processing Toolbox.

2. Краткие теоретические сведения

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

При реализации любых методов фильтрации изображений на ЭВМ исходное непрерывное изображение, описываемое функцией яркости , подвергается пространственной дискретизации с шагом и квантованию по уровню. В результате получается матрица , элементами которой являются значения исходной непрерывной функции яркости в узлах дискретной решетки , округленные до ближайшего уровня квантования. Дальнейшей обработке подвергаются уже элементы матрицы F, которые будем обозначать . При обработке изображений в MATLAB Image Processing Toolbox с использованием описанных ниже функций элементы матрицы F предварительно преобразуются в формат double, в котором яркость полутонового изображения изменяется в диапазоне от 0 до 1 (0 – черный цвет, 1 – белый). Поэтому различные параметры вызываемых функций следует указывать с учетом того, что яркость точек изображения не превышает единицы.

2.1. Подавление шумов

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

Если идеальное (незашумленное) изображение обозначить , то наблюдаемое изображение , искаженное аддитивным шумом, можно представить в виде

, (1)

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

Импульсный шум проявляется на изображении в виде отдельных точек с максимальной (белой) или минимальной (черной) яркостью. Белые точки часто называют “солевым шумом”, а черные – “перечным шумом”.

(2)

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

, (3)

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

а

б

в

г

Рис. 1. Различные типы шумов:

а - незашумленное изображение биологических клеток живой ткани;

б - зашумленное изображение (аддитивный гауссовский шум);

в - зашумленное изображение (импульсный шум);

г - зашумленное изображение (мультипликативный шум)

В MATLAB Image Processing Toolbox зашумление изображения различными типами шума осуществляется функцией imnoise. В зависимости от вида шума функция может иметь разные форматы:

1) аддитивный гауссовский шум

J = imnoise(I,'gaussian',m,v),

где J – зашумленное изображение; I – исходное изображение; m – среднее значение шума (по умолчанию 0); v – дисперсия шума (по умолчанию 0.01);

2) импульсный шум (“соль и перец”)

J = imnoise(I,'salt & pepper',d),

где d – плотность шума, т. е. отношение числа поврежденных точек изображения к общему числу точек (по умолчанию 0.05);

3) мультипликативный шум

J = imnoise(I,'speckle',v),

где v – дисперсия шума (по умолчанию 0.04).

Как правило, шумы проявляются в виде разрозненных изменений отдельных элементов изображения и искаженные элементы могут заметно отличаться от соседних. На практике используются различные алгоритмы подавления шумов с помощью локальных операторов сглаживания (усреднения), являющихся по существу низкочастотными фильтрами. Элементы изображения , получаемого в результате обработки исходного изображения двумерным линейным дискретным фильтром, импульсная характеристика которого задается матрицей H размерности K×L (K и L – нечетные), вычисляются по формуле дискретной свертки

, (4)

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

(5)

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

В MATLAB Image Processing Toolbox фильтрация изображений шумоподавляющими масками может быть реализована с помощью функции imfilter, которая вызывается следующим образом:

J = imfilter(I,H),

где J – профильтрованное изображение; H – маска фильтра; I – исходное изображение. Маски фильтров, приведенных в выражениях (5), в системе MATLAB задаются следующим образом:

H = [1 1 1; 1 1 1; 1 1 1]/9,

H = [1 1 1; 1 2 1; 1 1 1]/10, H = [1 2 1; 2 4 2; 1 2 1]/16.

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

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

, (6)

где ; ; K и L – размеры анализируемого участка изображения по вертикали и горизонтали соответственно.

В MATLAB Image Processing Toolbox подавление шума с помощью фильтра Винера осуществляется функцией wiener2, интерфейс которой имеет вид

J = wiener2(I,[m n],noise),

где J – профильтрованное изображение; I – наблюдаемое изображение; [m n] – размеры анализируемого участка изображения в пикселях по вертикали и горизонтали соответственно (по умолчанию – [3 3]); noise – мощность аддитивного шума (произведение дисперсии на количество точек изображения).

С помощью функций системы MATLAB мощность шума может быть вычислена как

noise = variance*prod(size(I)),

где variance – дисперсия шума ; prod(…) – функция, вычисляющая произведение элементов вектора; size(…) – функция, вычисляющая размерность многомерного массива (если массив имеет размерность k1×k2×…×kn, то результат имеет вид вектора [k1 k2kn]).

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

Наиболее эффективным методом подавления импульсного шума (шума типа “соль и перец”) является медианная фильтрация. Это нелинейный метод обработки изображений, основанный на замене каждого элемента наблюдаемого изображения медианой всех элементов, попавших внутрь скользящего окна размером K×L, центр которого последовательно помещается в каждую точку изображения. (Медианой дискретной последовательности а1, а2, …, аN для нечетного N называется тот элемент последовательности, для которого существует (N–1)/2 элементов, не превышающих его по величине, и (N–1)/2 элементов, больше или равных ему по величине.) Медианный фильтр подавляет импульсные сигналы, длительность которых составляет менее половины ширины окна и вызывает уплощение вершины треугольных сигналов. Как правило, фильтр сохраняет контуры изображения, но иногда может искажать форму объектов. В частности, он скругляет острые (меньше 90º) углы ярких объектов на изображении.

Медианная фильтрация изображений в MATLAB Image Processing Toolbox реализована в виде функции medfilt2, которая может быть вызвана следующим образом:

J = medfilt2(I,[m n]),

где J – профильтрованное изображение; I – наблюдаемое изображение; [m n] – размеры скользящего окна в пикселях (по умолчанию – [3 3]).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]