- •Рязанская государственная радиотехническая академия
- •Методические указания к лабораторным работам
- •Рязань 2005
- •390005, Рязань, ул. Гагарина, 59/1.
- •Введение
- •Команда imfinfo
- •Общие поля структуры info
- •Команда imwrite
- •Команда imshow
- •Команда iptsetpref
- •Глобальные переменные, устанавливаемые с помощью iptsetpref
- •Команда figure
- •Команда truesize
- •Команда subplot
- •Команда imresize
- •Команда imcrop
- •Команда imrotate
- •Команда plot
- •Команда hold
- •Команда mesh
- •Команда surf
- •Команда imhist
- •Команда text
- •Команда xlabel
- •Команда ylabel
- •Команда zlabel
- •Команда legend
- •4. Команды и операторы системы matlab, используемые в лабораторной работе Команды очистки
- •Матричные операторы
- •Условные операторы
- •Команды работы со строками
- •5. Порядок выполнения работы
- •6. Библиографический список
- •Лабораторная работа № 2 методы фильтрации изображений
- •1. Цель работы
- •2. Краткие теоретические сведения
- •2.1. Подавление шумов
- •2.2. Реставрация изображений
- •2.3. Выделение контуров
- •3. Порядок выполнения работы
- •4. Библиографический список
- •Лабораторная работа № 3 методы сегментации изображений
- •1. Цель работы
- •2. Теоретические сведения
- •2.1. Метод глобальной пороговой обработки
- •2.2. Байесовский метод
- •2.3. Метод центроидного связывания
- •2.4. Методы выделения границ
- •3. Практическая часть
- •4. Порядок выполнения работы
- •5. Библиографический список
- •3. Описание программы лабораторной работы
- •4. Порядок выполнения работы
- •5. Библиографический список
- •Оглавление
- •2.2. Реставрация изображений……………………………………………. 23
- •2.3. Выделение контуров………………………………………………….. 28
- •2. Теоретические сведения………………………………………………… 34
- •Список основных функций Image Processing Toolbox Форматы представления данных
- •Преобразования типов изображений
- •Конвертирование цветовых систем
- •Геометрические преобразования изображений
- •Анализ изображений
- •Улучшение изображений
- •Фильтрация изображений
- •Сегментация изображений
- •Морфологические операции над бинарным изображением
- •Операции с массивами
- •Формирование массивов специального вида
- •Операции над матрицами
- •Основные математические функции системы Matlab Базовые функции
- •Трансцендентные функции
- •Тригонометрические функции
- •Преобразования системы координат
- •Арифметические операторы
- •Операторы отношения
- •Логические операторы
- •Операторы поразрядной обработки
- •Операторы обработки множеств
- •Специальные переменнные и константы
- •Многомерные массивы
- •Задание осей координат
- •Управление цветом
- •Палитры цветов
- •Трехмерная графика
- •Операции над графическими объектами
- •Утилиты
- •Справочные команды
- •Управление рабочей областью
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 k2 … kn]).
При вызове функции 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]).
