Matlab图像处理图像平滑与滤波_第1页
Matlab图像处理图像平滑与滤波_第2页
Matlab图像处理图像平滑与滤波_第3页
Matlab图像处理图像平滑与滤波_第4页
Matlab图像处理图像平滑与滤波_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验三、图像平滑与滤波一、实验题目: 图像平滑与滤波二、实验目的: 在熟悉图像平滑的基本原理和方法的基础上,在理论指导下,能在MATLAB环境下对图像进行平滑处理。本实验要求用线性平滑滤波、中值平滑滤波、频域低通滤波的方法进行程序设计。经过平滑处理,对结果图像加以比较,得出自己的实验结论。三、实验内容:(1)利用MATLAB为用户提供的专门函数实现均值滤波。(2)利用MATLAB为用户提供的专门函数实现中值滤波。(3)编写频域理想低通、巴特沃斯低通及高斯低通滤波函数。四、预备知识:(1)熟悉平滑滤波原理。(2)熟悉频域滤波原理。(3)熟悉在MATLAB环境下对图像文件的I/O操作。五、实验原理

2、:平滑滤波技术用于平滑图像中的噪声。平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均值或中值。也可以在频域中用基于傅立叶的分析方法进行。这里对常用滤波函数进行简要介绍。(1) 噪声产生函数:imnoise 图像平滑主要是针对图像的各种噪声而言的,因此需要模拟数字图像的各种噪声来分析滤波效果。MATLAB的图像处理工具箱提供了imnoise函数,可以用该函数给图像添加不同种类噪声,其调用格式为: J = imnoise(I, type, parameters) I是输入图像,J是对I添加噪声后的输出图像。表5.1列出了imnoise函数能够产生的五种噪声及其对应参数。表5.1 噪声种类及参

3、数说明TYPEPARAMETERS说明gaussian m,v均值为m,方差为v的高斯噪声。默认值m=0,v=0.01localvar v均值为0,方差为v的高斯白噪声passion 无泊松噪声salt & pepper d噪声强度为d的椒盐噪声。默认值为0.05speckle v均值为0,方差为v的均匀分布随机噪声例1.5.1给图像加上椒盐噪声,可以使用下列语句。 I=imread(ckt-board.tif); J=imnoise(I,salt & pepper,0.2);%给图像加入椒盐噪声 subplot(1,2,1);imshow(I);title(原始图像); subplot(1,

4、2,2);imshow(J);title(加入椒盐噪声的图像);其显示结果如图1.5.1所示。图1.5.1 原始图像和加入噪声后的图像(2) 图像滤波函数:filter2、imfilter空域滤波是在图像空间中借助模板对图像进行邻域操作,输出图像每一个像素的取值都是根据模板对输入像素相应邻域内的像素值进行计算得到的。模板运算的数学涵义是一种卷积(或互相关)运算。 MATLAB提供了基于卷积的图像滤波函数filter2进行平滑滤波,该函数用指定的滤波器模板对图像进行运算。其调用格式为: B = filter2(h,A) B = filter2(h,A,shape)其中B=filter2(h,A)

5、返回图像A经算子h滤波后的结果,参数shape指定滤波的计算范围,即:shape=full时,作边界补零shape=same时,返回图像B与输入图像A大小相同shape=valid时,不考虑边界补零,只计算有效输出部分。此外,也可以使用imfilter函数进行卷积或相关性滤波来实现图像平滑。该函数的调用格式为: B = imfilter(A,H) B = imfilter(A,H, option1,option2,)其中B=imfilter(A,H)返回图像A经算子h滤波后的结果; B=imfilter(A,H, option 1, option 2,)是根据指定的option参数实现图像滤波

6、。option参数可以有下列取值:边界填充选项对一幅图像进行滤波时,零填充可能会导致图像被一个黑框围绕,为了消除零填充的人工痕迹,imfilter函数支持三种可选的边界填充方法:symmetric 边界对称replicate 边界复制,缺省值circular 边界循环输出尺寸选项其选项与filter2函数的shape参数相同。滤波选项corr 使用相关性来进行滤波,缺省使用此方法conv 使用卷积方法实现滤波以上两个滤波函数的参数h可以是自定义的滤波器模板,也可以是MATLAB提供的预定义滤波器模板。函数fspecial生成滤波所用的预定义模板。其调用格式为: h = fspecial(typ

7、e) h = fspecial(type,parameters)其中,参数type指定滤波器的种类,parameters是与滤波器种类有关的具体参数。例1.5.2 对图1.5.1中加入椒盐噪声的图像进行均值滤波,可以使用下列语句。 h=fspecial(average,3); gd=imfilter(J,h); subplot(1,2,1);imshow(J);title(加入椒盐噪声的图像); subplot(1,2,2);imshow(gd);title(33模板均值滤波);其显示结果如图1.5.2所示。图1.5.2 均值滤波(3) 中值滤波器函数:medfilt2 中值滤波是一种最常用的

8、非线性平滑滤波器,其滤波原理是把邻域中的图像的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。其调用格式为: B = medfilt2(A) B = medfilt2(A,M N)其中,A是输入图像,B是中值滤波后输出的图像。M N指定滤波模板的大小,默认模板是33的。例1.5.3 对图1.5.1中加入椒盐噪声的图像进行中值滤波,可以使用下列语句。 k=medfilt2(J); subplot(1,2,1);imshow(J);title(加入椒盐噪声的图像); subplot(1,2,2);imshow(k);title(33模板中值滤波);其显示结果如图1.5.3所示。图1.5.

9、3 中值滤波(4) 频域低通滤波频域滤波的基本步骤为:1) 用(-1)x+y乘以输入图像来进行频域中心变换;2) 由(1)计算图像的DFT,即I(u,v);3) 用滤波函数H(u,v)乘以I(u,v);4) 计算(3)中结果的反DFT;5) 得到(4)中的实部;6) 用(-1)x+y乘以(5)中的结果。MATLAB图像处理工具箱提供了一些函数来进行傅立叶变换。函数:fft2 用于计算二维快速傅立叶变换。调用格式为:Y = fft2(X) ;Y = fft2(X,M,N);式中X是输入图像矩阵,Y是X进行二维傅立叶变换后的图像矩阵;X和Y大小相同。在Y=fft2(X,M,N)中,按照M、N指定的

10、值对图像进行剪切或补0后进行傅立叶变换,返回变换矩阵的大小为MN。函数:fftshift fftshift函数将变换后的图像频谱中心从矩阵的原点移到矩阵的中心。其调用格式为:Y = fftshift(X) ;Y = fftshift(X,DIM) ;fftshift用于调整 fft、fft2和fftn的输出结果。对于向量X,将其左右两半交换位置,对于矩阵 X,将其一、三象限和二、四象限进行互换,对于高维向量 X,将矩阵各维的两半进行互换。函数:ifft2 用于计算图像的二维傅立叶反变换。其调用格式为: Y = ifft2(X) ;Y = ifft2(X,M,N) ;ifft2用于返回图像的二维傅立叶反变换矩阵,其参数定义同fft2。例1.5.3 对图1.5.1中加入椒盐噪声的图像进行截至频率D0为25的高斯低通滤波,其显示结果如图1.5.4所示。图1.5.4 频域高斯低通滤波六、实验步骤:(1)对给定的图像添加均值为0,方差分别为200、400的高斯噪声,以及概率分别为0.1、0.2的椒盐噪声,显示添加噪声后的图像。(2) 对加噪图像分别进行33、55、99的均值滤波,显示并比较滤波结果。(3) 对加噪图像分别进行3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论