МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра Захист інформації
З В І Т
До лабораторної роботи №3
з курсу:
„ Системи запису та відтворення інформації ”
на тему:
„ ДОСЛІДЖЕННЯ МЕТОДІВ ОБРОБКИ ЗОБРАЖЕНЬ В MATLAB ”
Варіант-23
Львів – 2011
Мета роботи : ознайомитися з основними можливостями обробки зображень реалізованими в середовищі MATLAB.
Завдання:
1. Ознайомитись з теоретичним матеріалом.
2. Завантажити файл вказаний в завданні відповідно до свого варіанту.
3. Вивести основну інформацію про графічний файл.
4. Накласти на зображення шуми gaussian, salt & pepper, speckle.
5. Провести лінійну фільтрацію зашумленого зображення фільтрами ‘average’, ‘gaussian’, sobel’, ‘prewitt’, ‘unsharp’. Зробити висновки про ефективність фільтрів.
6. Провести медіанну фільтрацію. Зробити висновки про ефективність фільтру.
7. Написати програму збереження відфільтрованого зображення у bmp-файлі.
8. Переконатися у працездатності програми.
Варіант – 23
Назва файлу - chess.tiff .
Лістинг програми:
A=imread('C:\Users\Адмін\Desktop\нулп\Системи запису і відтворення інформації\Photo\chess.tiff','tiff');
info=imfinfo('C:\Users\Адмін\Desktop\нулп\Системи запису і відтворення інформації\Photo\chess.tiff','tiff');
figure(1);imshow(A)
info.Filename
info.FileModDate
info.FileSize
info.Format
info.FormatVersion
info.Width
info.Height
info.BitDepth
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(9);imshow (C);
C=medfilt2(B,[3,3]);
figure(10);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('C:\Users\Адмін\Desktop\нулп\Системи запису і відтворення інформації\3 лаб\my3.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);
Результати програми
/
Оригінальнe зображення
/
Відфільтроване зображення
Висновок:
Виконуючи дану лабораторну роботу, я навчився працювати із зображеннями у середовищі Matlab. Розглянув методи очистки зображень за допомогою різноманітних фільтрів. Можна зробити висновок про відповідність очистки зображення конкретним фільтром в залежності від типу шуму на зображенні: проти шуму типу «сіль і перець» доречно застосовувати медіанну фільтрацію, проти гауссіанськго шуму доречно використовувати фільтр Гаусса і фільтр типу «average», проти мультиплікативного шуму – фільтр «average».Як видно із результатів, найякіснішу фільтрацію має медіанний фільтр.