Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Інститут комп’ютерних технологій,
автоматики та метрології
кафедра “Захист інформації”
ЗВІТ
до лабораторної роботи № 3
з курсу "Системи запису та відтворення інформації"
"ДОСЛІДЖЕННЯ МЕТОДІВ ОБРОБКИ ЗОБРАЖЕНЬ В MATLAB"
РОЗДІЛ 1. МЕТА РОБОТИ
Мета роботи – ознайомитися з основними можливостями обробки зображень реалізованими в середовищі MATLAB.
РОЗДІЛ 2. ЗАВДАННЯ:
Ознайомитись з теоретичним матеріалом.
Завантажити файл вказаний в завданні відповідно до свого варіанту.
Вивести основну інформацію про графічний файл.
Накласти на зображення шуми gaussian, salt & pepper, speckle.
Провести лінійну фільтрацію зашумленого зображення фільтрами ‘average’, ‘gaussian’, sobel’, ‘prewitt’, ‘unsharp’. Зробити висновки про ефективність фільтрів.
Провести медіанну фільтрацію. Зробити висновки про ефективність фільтру
Написати програму збереження відфільтрованого зображення у bmp-файлі.
Переконатися у працездатності програми.
Варіант
Назва файлу
11
cameraman1.tiff
РОЗДІЛ 3. ЛІСТИНГ ПРОГРАМИ
clear all;
A=imread('D:\My\Системи запису та відтворення інформації\3\cameraman1.tiff','tiff');
info=imfinfo('D:\My\Системи запису та відтворення інформації\3\cameraman1.tiff','tiff');
figure(1);imshow(A)
info.Filename
info.FileModDate
info.FileSize
info.ColorType
B=imnoise(A,'gaussian');
figure(2);imshow (B);
B=imnoise(A,'salt & pepper');
figure(3);imshow (B);
B=imnoise(A,'speckle');
figure(4);imshow (B);
% фільтрування
h= fspecial('average');
C=imfilter(B,h);
figure(5);imshow (C);
h= fspecial('gaussian');
C=imfilter(B,h);
figure(6);imshow (C);
% заливаэ чорним
h= fspecial('sobel');
C=imfilter(C,h');
figure(7);imshow (C);
%
h= fspecial('prewitt');
C=imfilter(B,h);
figure(8);imshow (C);
h= fspecial('unsharp');
C=imfilter(B,h);
figure(5);imshow (C);
C=medfilt2(B,[3,3]);
figure(5);imshow (C);
% Визначити висоту і ширину зображення
[m, n] = size(C);
H_I = m; % Висота
W_I = n; % Ширина
% Доповнити кількість байт в рядку до кратних 4
W_Real = W_I + (W_I - fix(W_I/4)*4); % Справжній розмір рядка в байтах
% Обчислити розмір файлу
File_Size = 54 + W_Real * H_I + 256*4;
% Обчислити розмір зображення в байтах
Image_Size = W_Real * H_I;
% Зміщення зображення від початку файлу
Offset = 54 + 256*4;
% Відкрити файл для запису
d = fopen('D:\My\Системи запису та відтворення інформації\3\my.bmp', 'wb');
%
% Заголовок файлу (BitMapFileHeader)
% Заповнити поле Type
fwrite(d, 'B', 'uchar');
fwrite(d, 'M', 'uchar');
% Заповнити поле Size
fwrite(d, File_Size, 'int32');
% Заповнити поле Reserved 1
fwrite(d, 0, 'int16');
% Заповнити поле Reserved 2
fwrite(d, 0, 'int16');
% Заповнити поле OffsetBits
fwrite(d, Offset, 'int32');
%
% Інформаційний заголовок (BitMapInfoHeader)
% Заповнити поле Size
fwrite(d, 40, 'int32');
% Заповнити поле Width
fwrite(d, W_I, 'int32');
% Заповнити поле Height
fwrite(d, H_I, 'int32');
% Заповнити поле Planes
fwrite(d, 1, 'int16');
% Заповнити поле BitCount
fwrite(d, 8, 'int16');
% Заповнити поле Compression
fwrite(d, 0, 'int32');
% Заповнити поле SizeImage
fwrite(d, Image_Size, 'int32');
% Заповнити поле XpelsPerMeter
fwrite(d, 0, 'int32');
% Заповнити поле YpelsPerMeter
fwrite(d, 0, 'int32');
% Заповнити поле ColorsUsed
fwrite(d, 256, 'int32');
% Заповнити поле ColorsImportant
fwrite(d, 256, 'int32');
%
% Таблиця кольорів (палітра) (ColorTable)
for ii = 0 : 255
Temp = [ii ii ii 255];
fwrite(d, Temp, 'uchar');
end;
%
% Дані зображення (BitMap Array)
Temp = zeros(1, W_Real);
for ii = H_I : -1 : 1
Temp(1:W_I) = C(ii, 1:W_I);
fwrite(d, Temp, 'uchar');
end;
%
fclose(d);
РОЗДІЛ 4. РИСУНКИ
4.1. Фільтрація зображення з шумом типу «сіль і перець» медіанною фільтрацією
//
4.2. Фільтрація зображення з шумом типу Гауса фільтром Гауса
Noised Gaussian Filtred Gaussian
//
4.3. Фільтрація зображення з шумом типу Гауса фільтром «average»
Noised Gaussian Filtred Average
//
4.4. Фільтрація зображення з мультиплікативним шумом фільтром «average»
Noised speckle Filtred Average
//
РОЗДІЛ 5. ВИСНОВОК
Виконуючи дану лабораторну роботу, я навчився працювати із зображеннями у середовищі Matlab. Розглянув методи очистки зображень за допомогою різноманітних фільтрів. Можна зробити висновок про відповідність очистки зображення конкретним фільтром в залежності від типу шуму на зображенні: проти шуму типу «сіль і перець» доречно застосовувати медіанну фільтрацію, проти гауссіанськго шуму доречно використовувати фільтр Гаусса і фільтр типу «average», проти мультиплікативного шуму – фільтр «average». Як видно із результатів, найякіснішу фільтрацію має медіанний фільтр.