НОВОСИБИРСКИЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
Кафедра Систем Сбора и Обработки Данных
Дисциплина «Теория и обработка сигналов», 5 - й семестр
ЛАБОРАТОРНАЯ РАБОТА № 8
ОБРАБОТКА ИЗОБРАЖЕНИЙ В MATLAB
Цель работы: Знакомство с математическими моделями и характеристиками цифровых изображений, базовыми методами их обработки и приобретение начальных практических навыков обработки изображений в среде Matlab.
Задание и порядок выполнения работы
1. Ознакомьтесь с понятием цифрового изображения, основными характеристиками и методами обработки изображений по специальной литературе, например, [1] или [2]. В краткой форме эти вопросы систематизированы в приложении 1 к лабораторной работе.
2. Загрузите файл - изображение командой I = imread(‘cameraman.tif’); При этом в матрицу I считывается полутоновое (черно – белое) изображение cameraman.tif , входящее в приложение Image Processing Toolbox Matlab. Оно имеет графический формат TIFF (Tagged Image File Format). С помощью функции imshow(I) выведите изображение на экран.
Указание.
В данной лабораторной работе Вы можете загрузить другое доступное изображение
и выполнять с ним операции по обработке.
Командой whos выведите
информацию о переменной I. Обратите внимание,
что матрица состоит из элементов типа uint8 (unsigned integer, 8 bits).
Система Matlab может отображать также массивы и
других форматов - uint16 или double с возможностями преобразования
типов (см. приложение 1). Если
изображение представлено в формате uint8, диапазон значений содержит 255
градаций яркости, а для изображения в формате uint16
- 65535 градаций.
3.
Получите с помощью команд figure, imhist(I) гистограмму изображения.
Для реальных изображений характерен неравномерный
характер гистограммы: большой удельный вес темных участков и относительно
малое число участков с высокой яркостью. Для выравнивания гистограммы используйте функцию histeq(), которая обеспечивает более равномерное распределение
интенсивностей по всему диапазону. Это дает повышение контрастности
изображения.
С помощью команд I1 = histeq(I); figure, imshow(I1) выполните преобразование контрастности и вывод
новой гистограммы и преобразованного изображения.
Сопоставьте и прокомментируйте результаты.
4.
Для записи нового улучшенного изображения в другом формате, например, bmp примените команду вида imwrite(I1, 'cameraman_2.bmp').
Выполните увеличение/уменьшение ранее полученного изображения
командой imresize(I,
k), где k – коэффициент
масштабирования. Командами I2= imcrop(I); imshow(I2); с
последующим выделением нужной области мышью осуществите вырезание части изображения.
С помощью команды J=imrotate(I,G), где G -угол
поворота в градусах, продемонстрируйте поворот изображения.
Осуществите также некоторые из операций препарирования изображения, а именно
а) бинаризацию изображения, т.е. преобразование изображения в двухцветное черно-белое, которое в Matlab может быть выполнено командами
level = graythresh(I); bw = im2bw((I), level); figure, imshow(bw).
Бинарные изображения содержат пиксели со значением только ноль или единица. Пиксели со значением 0 отображаются как черные, а пиксели со значением 1 - как белые.
б) линейное контрастирование с желаемыми значениями минимальной (ymin) и максимальной (ymax) выходной яркости изображения с помощью последовательности команд ymin=0.3; ymax=0.7; J1 = imadjust(I,[ymin, ymax],[]); imshow(I), figure, imshow(J1).
5. Изображения, сформированные различными оптико-электронными системами, во многих случаях искажаются действием различных помех. Ослабление действия помех осуществляется с помощью фильтров. Рассмотрите пример использования так называемого усредняющего фильтра Гаусса. Для этого наложите на исходное изображение гауссовский шум командой J2 = imnoise(I,'gaussian',0,0.05);, где среднее значение шума равно 0, а дисперсия - 0,05. Просмотрите полученное изображение. Затем командой K = filter2(fspecial('average',3),J)/255; примените усредняющий фильтр, который выполняет усреднение пикселов в квадрате 3 на 3 элемента с рабочим элементом в центре. Сравните полученное изображение с предыдущим.
6. Примените к зашумленному гауссовским шумом изображению адаптивный винеровский фильтр командой K1 = wiener2(J,[5 5]);. Такой фильтр осуществляет адаптивную локальную обработку изображения в квадрате 5 на 5 элементов. Если значение среднеквадратического отклонения интенсивностей пикселей в данной локальной области большое, то wiener2 выполняет небольшое сглаживание. Если же это отклонение небольшое, то сглаживание больше. Этот фильтр часто бывает более эффективным, чем обычная линейная фильтрация. Выведите изображение после адаптивной обработки и сопоставьте результат с действием усредняющего фильтра.
7. Добавьте к исходному выражению командой M= imnoise(I,' salt & pepper', 0.02); шум типа «salt & pepper (соль и перец)». Просмотрите изображение. Снова примените усредняющий фильтр, как и в предыдущем пункте. Сделайте соответствующий вывод по результатам данной обработки.
8. Примените теперь к предыдущему зашумленному изображению командой L = medfilt2(M,[3 3]); так называемый медианный фильтр. Сравните результаты медианной и усредняющей фильтрации для помехи данного вида.
9. Загрузите командой I = imread('saturn.tif'); и отобразите изображение из файла 'saturn.tif' . Для повышения резкости изображения командами H = fspecial('unsharp'); sharpened = imfilter(I,H); imshow(sharpened); title(‘Результат обработки'); выполните фильтрацию исходного изображения и отображение результата. Прокомментируйте итоги.
10.
Загрузите и отобразите цветное изображение из файла ‘flowers.tif’. Для
определения глубины цвета, который может отображать система, примените команду get(0,'ScreenDepth'). Обратите
внимание, что 32-битная визуализация использует 24 бита для запоминания
цветовой информации а еще 8 бит используется для запоминания насыщенности
(прозрачности) .
Для уменьшения числа цветов преобразуйте полноцветное RGB – изображение в индексное изображение с меньшим числом
цветов командами [X,map] = rgb2ind(I,32);
imshow(X,map). Квантование приводит к уменьшению
количества цветов на изображении. В данном варианте используется равномерное
квантование. При использовании функций rgb2ind или функции аналогичного
назначения imapprox для уменьшения количества цветов качество
результирующего изображения немного ниже. Обе функции - rgb2ind и imapprox
- применяют метод диффузионного псевдосмешения цветов (dithering). Это
приводит к визуальному увеличению количества отображаемых цветов.
Для получения информации о размерах исходного и преобразованного
изображения примените команду whos.
11. Сделайте необходимые пояснения, заключения и выводы в соответствии с целью работы, окончательно оформите отчет по лабораторной работе. В отчете должны быть представлены
§ титульный лист,
§ название и цель работы,
§ формулировки пунктов работы, команды и .m – файлы, графики, комментарии, выводы.
ЛИТЕРАТУРА
1. Даджион Д., Мерсеро Р. Цифровая обработка многомерных сигналов: Пер. с англ. – М.: Мир, 1988.
2. Ярославский Л.П. Цифровая обработка сигналов в оптике и голографии: Введение в цифровую оптику. - М.: Радио и связь, 1987.
Web – ресурсы
http://aco.ifmo.ru/el_books/image_processing/
Контрольные вопросы и упражнения
1. Сформулируйте понятие двумерного изображения.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.