МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з навчальної дисципліни:
«Системи запису та відтворення інформації»
на тему: «Дослідження методів обробки зображень в MatLab»
Львів – 2011
Мета роботи: ознайомитися з основними можливостями обробки зображень реалізованими в середовищі MatLab.
Завдання
Ознайомитись з теоретичним матеріалом.
Завантажити файл вказаний в завданні відповідно до свого варіанту.
Вивести основну інформацію про графічний файл.
Накласти на зображення шуми guassian, salt & pepper, speckle.
Провести лінійну фільтрацію зашумленого зображення фільтрами ‘average’, ‘gaussian’, ‘sobel’, ‘prewitt’, ‘unsharp’. Зробити висновки про ефективність фільтрів.
Провести медіанну фільтрацію. Зробити висновки про ефективність фільтру.
Написати програму збереження відфільтрованого зображення у bmp-файлі.
Переконатися в працездатності програми.
Варіант – 1, назва файлу cameraman1.tiff.
Лістинг програми
I=imread('D:\Photo\cameraman1.tiff');
subplot(2,2,1);
imshow(I); title('Original Image');
h=imshow('D:\Photo\cameraman1.tiff');
info = imfinfo('D:\Photo\cameraman1.tiff');
G=imnoise(I,'gaussian');
subplot(2,2,2);
imshow(G); title('Gaussian Noise');
SP=imnoise(I,'salt & pepper');
subplot(2,2,3);
imshow(SP); title('Salt & Pepper Noise');
S=imnoise(I,'speckle');
subplot(2,2,4);
imshow(S); title('Speckle Noise');
h=fspecial('gaussian');
FG=imfilter(G,h);
figure('Name','Filers for Gaussian Noise');
subplot(2,3,1);
imshow(FG); title('Gaussian Filter');
s=fspecial('sobel');
FA=imfilter(G,s);
subplot(2,3,2);
imshow(FA), title('Sobel Filter');
u=fspecial('unsharp');
FA=imfilter(G,u);
subplot(2,3,3);
imshow(FA), title('Unsharp Filter');
p=fspecial('prewitt');
FA=imfilter(G,p);
subplot(2,3,4);
imshow(FA), title('Prewitt Filter');
a=fspecial('average');
FA=imfilter(G,a);
subplot(2,3,5);
imshow(FA), title('Average Filter');
h=fspecial('gaussian');
FG=imfilter(SP,h);
figure('Name','Filers for Salt & Pepper Noice');
subplot(2,3,1);
imshow(FG);title('Gaussian Filter');
s=fspecial('sobel');
FA=imfilter(SP,s);
subplot(2,3,2);
imshow(FA), title('Sobel Filter');
u=fspecial('unsharp');
FA=imfilter(SP,u);
subplot(2,3,3);
imshow(FA), title('Unsharp Filter');
p=fspecial('prewitt');
FA=imfilter(SP,p);
subplot(2,3,4);
imshow(FA), title('Prewitt Filter');
a=fspecial('average');
FA=imfilter(SP,a);
subplot(2,3,5);
imshow(FA), title('Average Filter');
h=fspecial('gaussian');
FG=imfilter(S,h);
figure('Name','Filers for Speckle Noise');
subplot(2,3,1);
imshow(FG);title('Gaussian Filter');
s=fspecial('sobel');
FA=imfilter(S,s);
subplot(2,3,2);
imshow(FA), title('Sobel Filter');
u=fspecial('unsharp');
FA=imfilter(S,u);
subplot(2,3,3);
imshow(FA), title('Unsharp Filter');
p=fspecial('prewitt');
FA=imfilter(S,p);
subplot(2,3,4);
imshow(FA), title('Prewitt Filter');
a=fspecial('average');
FA=imfilter(S,a);
subplot(2,3,5);
imshow(FA), title('Average Filter');
K=medfilt2(G);
figure('Name','Median Filers');
subplot(2,2,1)
imshow(K);title('Median filter for Gaussian Noise ');
K=medfilt2(SP);
subplot(2,2,2)
imshow(K);title('Median filter for Salt & Pepper Noise ');
K=medfilt2(SP);
subplot(2,2,3)
imshow(K);title('Median filter for Speckle Noise ');
[m,n]=size(K);
H_I=m;
W_I=n;
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.bmp','wb');
fwrite(d,'B','uchar');
fwrite(d,'M','uchar');
fwrite(d,File_Size,'int32');
fwrite(d,0, 'int16');
fwrite(d,0, 'int16');
fwrite(d,Offset,'int32');
fwrite(d,40,'int32');
fwrite(d,W_I,'int32');
fwrite(d,H_I,'int32');
fwrite(d,1,'int16');
fwrite(d,8,'int16');
fwrite(d,0,'int32');
fwrite(d,Image_Size,'int32');
fwrite(d,0,'int32');
fwrite(d,0,'int32');
fwrite(d,256,'int32');
fwrite(d,256,'int32');
for ii=0:255
Temp=[ii ii ii 255];
fwrite(d,Temp,'uchar');
end;
Temp=zeros(1,W_Real);
for ii=H_I:-1:1
Temp(1:W_I)=I(ii,1:W_I);
fwrite(d,Temp,'uchar');
end;
fclose(d);
Оригінальне зображення і зашумлені зображення
Фільтри для шуму guassian
Фільтри для шуму salt & pepper
Фільтри для шуму speckle
Результати медіанної фільтрації
Збережене відфільтроване зображення
Висновок: На даній лабораторній роботі я ознайомився з основними можливостями обробки зображень реалізованими в середовищі MatLab. За допомогою лінійної фільтрації можна відфільтрувати зображення лише з певним видом шуму. Тобто існує відповідність між шумом і фільтром. Медіанна фільтрація, як видно з результатів роботи, може застосовуватися для всіх розглянутих шумів, навіть якщо зображення дещо розмивається.
Відфільтроване зображення було збережено у bmp-файлі.