空域和频域滤波法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验图像的滤波增强处理
实验目的
1了解空域增强的基本原理
2掌握平滑滤波器和锐化滤波器的使用
3掌握图像中值滤波增强的使用
4了解频域增强的基本原理
5掌握低通滤波器和高通滤波器的使用实验原理
1.空域增强
空域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。
空域滤波一般分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。结合这两种分类方法,可将空间滤波增强分为四类:
1)线性平滑滤波器(低通)2)非线性平滑滤波器(低通)3)线性锐化滤波器(高通)
4)非线性锐化滤波器(高通)空间滤波器都是基于模板卷积,其主要工作步骤是:
1(1)将模板在图中移动,并将模板中心与图中某个像素位置重合;
2(2)将模板上的系数与模板下对应的像素相乘;
3(3)将所有乘积相加;
(4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。
1.1平滑滤波器
线性低通平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3×3 的模板来说,最简单的是取所有系数为1,为了保持输出图像任然在原来图像的灰度值范围内,模板与象素邻域的乘积都要除以9。
MATLAB 提供了fspecial 函数生成滤波时所用的模板,并提供filter2 函数用指定的滤波器模板对图像进行运算。函数fspecial 的语法格式为:
h=fspecial(type)
h=fspecial(type,parameters)
其中参数type 指定滤波器的种类,parameters 是与滤波器种类有关的具体参数。这两个参数的种类及含义见表4-1。表4-1 MATLAB 中预定义的滤波器种类
MATLAB 提供了一个函数imnoise 来给图像增添噪声,其语法格式为:
J=imnoise(I,type) J=imnoise(I,type,parameters) 参数type 指定噪声
的种类,parameters 是与噪声种类有关的具体参数。参数的种类见表4-2。表4-2 噪声种类及参数说明
邻域平均法
I=imread('eight.tif');
J=imnoise(I,'salt & pepper',0.02);
subplot(231),imshow(I);
subplot(232),imshow(J);
k1=filter2(fspecial('average',3),J);%进行3×3模板平滑滤波
k2=filter2(fspecial('average',5),J);%进行5×5模板平滑滤波
k3=filter2(fspecial('average',7),J);%进行7×7模板平滑滤波
k4=filter2(fspecial('average',9),J);%进行9×9模板平滑滤波
subplot(233),imshow(uint8(k1));
subplot(234),imshow(uint8(k2));
subplot(235),imshow(uint8(k3));
subplot(236),imshow(uint8(k4));
处理结果:
1.2中值滤波
中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波器方法类似,但计算的不是加权求和,而是把领域中的图像的象素按灰度级进行排序,然后选择改组的中间值作为输出象素值。
MATLAB 提供了medfilt2 函数来实现中值滤波,其语法格式为:
B=medfilt2(A,[m n]) B=medfilt2(A)其中,A 是原图象,B 是中值滤波后输出的图像。[m n] 指定滤波模板的大小,默认模板是3×3 的。
【实验】对一幅图像实现不同模板的中值滤波,并比较结果。
I=imread('eight.tif');
J=imnoise(I,'salt & pepper',0.02);
subplot(231),imshow(I);
subplot(232),imshow(J);
k1=medfilt2(J); %进行3×3模板中值滤波
k2=medfilt2(J,[5 5]); %进行5×5模板中值滤波
k3=medfilt2(J,[7 7]); %进行7×7模板中值滤波
k4=medfilt2(J,[9 9]); %进行9×9模板中值滤波
subplot(233),imshow(uint8(k1));
subplot(234),imshow(uint8(k2));
subplot(235),imshow(uint8(k3));
subplot(236),imshow(uint8(k4));
处理结果:
2.频域增强
频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进行图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。