实验四.docx
《实验四.docx》由会员分享,可在线阅读,更多相关《实验四.docx(15页珍藏版)》请在冰豆网上搜索。
![实验四.docx](https://file1.bdocx.com/fileroot1/2023-2/2/6d7fa523-baa0-4759-899c-c78bef4ae5d3/6d7fa523-baa0-4759-899c-c78bef4ae5d31.gif)
实验四
贵州师范大学数学与计算机科学学院学生实验报告
课程名称:
数字图像处理班级:
12信本实验日期:
2015年4月21日
学号:
120703010033姓名:
指导教师:
张艳
一、实验名称
图像的空域滤波。
二、实验目的及要求
通过本实验使学生掌握使用MATLAB对灰度图像进行空域增强的目的,加深对图像空域滤波增强方法的理解。
三、实验原理
本实验是基于数字图像处理课程中的图像变换和增强理论来设计的。
本实验的准备知识:
“4、灰度变换与空间滤波”中的空间滤波技术。
MATLAB中滤波器的函数
中值滤波命令:
B=medfilt2(I,[3,3])%使用3×3中值滤波器对I滤波均值滤波技术。
均值滤波命令:
先定义模板,如H=1/9*ones(3,3),或H=fspecial('average',[3,3]);然后使用命令I1=imfilter(I,H)对图像I消噪。
四、实验内容
读入lena.jpg文件,进行下列操作:
(1)将图像添加上椒盐噪声,A_noised=imnoise(A,'salt&pepper',0.02),同屏显示原图像和加噪图像,说明椒盐噪声的特点;
(2)设计3×3,5×5,7×7,9×9四种模板的均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
(3)设计3×3,5×5,7×7,9×9四种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
(4)将图像添加上高斯噪声,A_noised=imnoise(A,'gauss',0.02),同屏显示原图像和加噪图像,说明高斯噪声的特点;
(5)设计3×3,5×5,7×7,9×9四种模板的算术均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
(6)设计3×3,5×5,7×7,9×9四种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明。
(7)自编程序,实现均值滤波和中值滤波。
(8)调用自编程实现的函数,对加了椒盐噪声图像的实现3×3和5×5两种种模板的均值滤波和中值滤波。
五、实现代码及运行效果图
(1)将图像添加上椒盐噪声,A_noised=imnoise(A,'salt&pepper',0.02),同屏显示原图像和加噪图像,说明椒盐噪声的特点;
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'salt&pepper',0.02);
subplot(1,2,1),imshow(xz),title('原图');
subplot(1,2,2),imshow(xz_noised),title('加噪图像’);
运行结果:
椒盐噪声的特点:
椒盐噪声类似把椒盐撒在图像上,是一种在图像上出现很多白点或黑点的噪声。
椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。
2)设计3×3,5×5,7×7,9×9四种模板的均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'salt&pepper',0.02);
h1=(1/9)*ones(3,3);
h2=(1/25)*ones(5,5);
h3=(1/49)*ones(7,7);
h4=(1/81)*ones(9,9);
t1=imfilter(xz_noised,h1);
t2=imfilter(xz_noised,h2);
t3=imfilter(xz_noised,h3);
t4=imfilter(xz_noised,h4);
figure
subplot(3,2,1),imshow(xz),title('原图');
subplot(3,2,2),imshow(xz_noised),title('加噪图像');
subplot(3,2,3),imshow(t1),title('3*3消噪图像');
subplot(3,2,4),imshow(t2),title('5*5消噪图像');
subplot(3,2,5),imshow(t3),title('7*7消噪图像');
subplot(3,2,6),imshow(t4),title('9*9消噪图像');
运行结果:
均值滤波效果解释和说明:
当所用平滑模板尺寸增大时,对噪声的消除有所增强,但同时得到的图像变得更加模糊,细节的锐化程度逐步减弱。
(3)设计3×3,5×5,7×7,9×9四种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'salt&pepper',0.02);
b1=medfilt2(xz_noised,[3,3]);
b2=medfilt2(xz_noised,[5,5]);
b3=medfilt2(xz_noised,[7,7]);
b4=medfilt2(xz_noised,[9,9]);
figure
subplot(3,2,1),imshow(xz),title('原图');
subplot(3,2,2),imshow(xz_noised),title('加噪图像');
subplot(3,2,3),imshow(b1),title('3*3中值滤波消噪图像');
subplot(3,2,4),imshow(b2),title('5*5中值滤波消噪图像');
subplot(3,2,5),imshow(b3),title('7*7中值滤波消噪图像');
subplot(3,2,6),imshow(b4),title('9*9中值滤波消噪图像');
运行结果:
中值滤波效果解释和说明:
当所用中值滤波模板尺寸增大时,对噪声的消除有所增强,但同时得到的图像变得更加清晰,细节的锐化程度逐步增强。
(4)将图像添加上高斯噪声,A_noised=imnoise(A,'gauss',0.02),同屏显示原图像和加噪图像,说明高斯噪声的特点;
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'gauss',0.02);
subplot(1,2,1),imshow(xz),title('原图');
subplot(1,2,2),imshow(xz_noised),title('高斯加噪图像');
运行结果:
高斯噪声的特点:
高斯噪声是指噪声服从高斯分布,即某个强度的噪声点个数最多,离这个强度越远噪声点个数越少,且这个规律服从高斯分布.高斯噪声是一种加性噪声,即噪声直接加到原图像上。
(5)设计3×3,5×5,7×7,9×9四种模板的算术均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'gauss',0.02);
h1=(1/9)*ones(3,3);
h2=(1/25)*ones(5,5);
h3=(1/49)*ones(7,7);
h4=(1/81)*ones(9,9);
t1=imfilter(xz_noised,h1);
t2=imfilter(xz_noised,h2);
t3=imfilter(xz_noised,h3);
t4=imfilter(xz_noised,h4);
figure
subplot(3,2,1),imshow(xz),title('原图');
subplot(3,2,2),imshow(xz_noised),title('高斯加噪图像');
subplot(3,2,3),imshow(t1),title('3*3算术均值滤波消噪图像');
subplot(3,2,4),imshow(t2),title('5*5算术均值滤波消噪图像');
subplot(3,2,5),imshow(t3),title('7*7算术均值滤波消噪图像');
subplot(3,2,6),imshow(t4),title('9*9算术均值滤波消噪图像');
运行结果:
(6)设计3×3,5×5,7×7,9×9四种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明。
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'gauss',0.02);
b1=medfilt2(xz_noised,[3,3]);
b2=medfilt2(xz_noised,[5,5]);
b3=medfilt2(xz_noised,[7,7]);
b4=medfilt2(xz_noised,[9,9]);
figure
subplot(3,2,1),imshow(xz),title('原图');
subplot(3,2,2),imshow(xz_noised),title('高斯加噪图像');
subplot(3,2,3),imshow(t1),title('3*3中值滤波消噪图像');
subplot(3,2,4),imshow(t2),title('5*5中值滤波消噪图像');
subplot(3,2,5),imshow(t3),title('7*7中值滤波消噪图像');
subplot(3,2,6),imshow(t4),title('9*9中值滤波消噪图像');
运行结果:
(7)自编程序,实现均值滤波和中值滤波。
均值滤波M文件:
functionxz=medFilt(x,n)
p=size(x);
x1=double(x);
x2=x1;
fori=1:
p
(1)-n+1
forj=1:
p
(2)-n+1
c=x1(i:
i+(n-1),j:
j+(n-1));
e=c(1,:
);
foru=2:
n
e=[e,c(u,:
)];
end
mm=median(e);
x2(i+(n-1)/2,j+(n-1)/2)=mm;
end
end
xz=uint8(x2);
中值滤波M文件:
functionxz=averageFilt(x,n)
a(1:
n,1:
n)=1;
p=size(x);
x1=double(x);
x2=x1;
fori=1:
p
(1)-n+1
forj=1:
p
(2)-n+1
c=x1(i:
i+(n-1),j:
j+(n-1)).*a;
s=sum(sum(c));
x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n);
end
end
xz=uint8(x2);
(8)调用自编程实现的函数,对加了椒盐噪声图像的实现3×3和5×5两种种模板的均值滤波和中值滤波。
程序:
clc
clear
xz=imread('lena.jpg');
xz=rgb2gray(xz);
xz_noised=imnoise(xz,'salt&pepper',0.02);
b1=averageFilt(xz_noised,3);
b2=averageFilt(xz_noised,5);
t1=medFilt(xz_noised,3);
t2=medFilt(xz_noised,5);
figure
subplot(3,2,1),imshow(xz),title('原图');
subplot(3,2,2),imshow(xz_noised),title('椒盐噪声图像');
subplot(3,2,3),imshow(b1),title('3*3均值滤波消噪图像');
subplot(3,2,4),imshow(t1),title('3*3中值滤波消噪图像');
subplot(3,2,5),imshow(b2),title('5*5均值滤波消噪图像');
subplot(3,2,6),imshow(t2),title('5*5中值滤波消噪图像');
运行结果:
六、总结
唯一的感觉就是这些图好像表面看上去没有太大的差别,不过放大了之后还是能看出均值滤波和中值滤波的一些效果。
其他的没有太大的问题,老师几乎把程序都告诉我们了,只需要自己去体会!
!
!