平滑滤波方法研究_第1页
平滑滤波方法研究_第2页
平滑滤波方法研究_第3页
平滑滤波方法研究_第4页
平滑滤波方法研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、平滑滤波方法研究平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。并且具有一定的处理要求,一是不能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果好。平滑滤波的方法有邻域平滑滤波,就是求邻近像元点的平均亮度值,双边滤波,中值滤波,以及非局部均值滤波等。1、双边滤波法双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。双边滤波的边缘保持特性主要是通过在卷积的过程中组合空域函数和值域核函数来实现的,典型的核函数为高斯分布函数,如下所示:/(X)=沪(刃益(/(刃-/(x)/(F)砂其中:二J(0%(/0)-/)砂Q为归一化作用。s为空域高斯函数的标

2、准差,0r为值域高斯函数的标准差,Q表示卷积的定义域。编写代码测试,当添加的噪声为0.05时,结果如下滤波后图像添加噪声为0.3时,结果如下滤波后图像由此可知,双边滤波具有去除噪音的作用2、邻域平均法邻域平滑滤波原理:邻域平均法就是对含噪声的原始图像f(x,y)的每一个像素点取一个邻域,计算S中所有像素灰度级的平均值,作为邻域平均处理后的图像g(x,y)的像素值。即式中:x,y=0,l,,NT;S是以(x,y)为中心的邻域的集合,M是S内的点数。受高斯嗓.首干扰前原图8邻域平均滤波#邻域平均浦液邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单

3、,计算速度快,其代价会造成图像在一定程度上的模糊。3、中值滤波法中值滤波就是用一个奇数点的移动窗口,将窗口的中心点的值用窗口内的各点中值代替。假设窗口内有五点,其值为80、90、200、110和120,那么此窗口内各点的中值及为110。设有一个一维序列fl,f2,fn,取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相继抽出m个数fi-v,,fi-l,fi,fi+l,,fi+v(其中fi为窗口中心值,v=(mT)/2),再将这m个点按其数值大小顺序排序,取其序号的中心点的那个数作为滤波输出。数学公式表示为:Yi二Medfi-v,,fiT,fi,fi+l,,fi+viWNv

4、=(mT)/2(式1-2)Yi称为序列fi-v,,fi-l,fi,fi+l,,fi+v的中值例如,有一序列0,3,4,0,7,重新排序后为0,0,3,4,7则Med0,0,3,4,7=3。此列若用平滑滤波,窗口也取5,那么平滑滤波输出为(0+3+4+0+7)/5=2.8。把一个点的特定长度或形状的邻域称作窗口。在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。中值滤波很容易推广到二维,此时可以利用二维形式的窗口。对于平面图像采用的二维中值滤波可以由下式表示:式中:A为窗口,Xij为二维数据序列,即数字图像各点的灰度值。在对图像进行中值滤波时,如果窗口是关于中心点对称的,并且包含中心点在内

5、,则中值滤波能保持任意方向的跳变边缘。图像中的跳变边缘指图像中不同灰度区域之间的灰度突变边缘。在实际使用窗口时,窗口的尺寸一般先取3,再取5,依次增大,直到滤波效果满意为止,对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口较合适,对于包含尖顶角物体的图像,采用十字形窗口较合适。使用二维中值滤波值得注意的是要保持图像中有效线状体。通过实验可得出中值滤波具有以下特性:对于某些输入信号中值滤波具有不变性。中值滤波可以用来减弱随机干扰的脉冲干扰,具有较好的去噪声性能。4、非局部均值(NLM)滤波法非局部均值滤波用于图像去噪,它就充分利用了图像的冗余性。它的基本思想是图像包含了重复结构,取其平均值将

6、降低噪声。NLM滤波是斯拉夫斯基的演变,它是从局部相似强度中取相似图像像素的平均值。两种滤波主要不同之处是使用区域间比较得出像素间的相似性比像素间比较更具有鲁棒性。况且匹配模式并未限制在局部区域。也就是说,远离被过滤的像素不被惩罚。给出一幅图像Y使用NLM方法在点处的过滤值可看成是计算邻近像素间的加权平均值Ni,公式如下:也|儿二工叩丿“/)/8img=rgb2gray(img);end%img=padarray(img,33,symmetric,both);%f=imnoise(f0,salt&pepper,0.05);img=imnoise(img,salt&pepper,0.1);img

7、=imnoise(img,gaussian,0.3);%img=mat2gray(img);mnl=size(img);%mn1=size(img);dim=size(img);B=zeros(dim);figure(1);imshow(img);r=10;imgn=zeros(m+2*r+1,n+2*r+1);imgn(r+1:m+r,r+1:n+r)=img(:,:,1);imgn(1:r,r+1:n+r)=img(1:r,1:n);imgn(1:m+r,n+r+1:n+2*r+1)=imgn(1:m+r,n:n+r);imgn(m+r+1:m+2*r+1,r+1:n+2*r+1)=img

8、n(m:m+r,r+1:n+2*r+1);imgn(1:m+2*r+1,1:r)=imgn(1:m+2*r+1,r+1:2*r);sigma_d=3;sigma_r=0.1;%x,y=meshgrid(-r:r,-r:r);%w1=exp(-(x.A2+y.A2)/(2*sigmad人2);X,Y=meshgrid(-r:r,-r:r);G=exp(-(X.人2+Y.人2)/(2*sigma_d人2);%h=waitbar(0,Applyingbilateralfilter.);%set(h,Name,BilateralFilterProgress);h=waitbar(0,wait.);fo

9、ri=1:dim(1)forj=1:dim(2)%Extractlocalregion.iMin=max(i-r,1);iMax=min(i+r,dim(1);jMin=max(j-r,1);jMax=min(j+r,dim(2);I=A(iMin:iMax,jMin:jMax);%ComputeGaussianintensityweights.H=exp(-(I-A(i,j).A2/(2*sigma_rA2);%Calculatebilateralfilterresponse.F=H.*G(iMin:iMax)-i+r+1,(jMin:jMax)-j+r+1);B(i,j)=sum(F(:)

10、.*I(:)/sum(F(:);endwaitbar(i/dim(1);endclose(h)Image_bf=B;imgout=uint8(Image_bf*255);%imgout=s(r+1:m+r,r+1:n+r);imwrite(imgout,G:蓝春双边滤波001.jpg);figure(2);imshow(mat2gray(imgout);非局部均值(NLM)滤波%filename=original.bmp;inputpath=G:蓝春双边滤波;outputpath=G:蓝春双边滤波;%file=128;%file=256;file=chu512;%file=1024;ex=.B

11、MP;filename=inputpath,file,ex;img=imread(filename);Info=imfinfo(filename);pixHeight=Info.Height;pixWidth=Info.Width;ifInfo.BitDepth8img=rgb2gray(img);endfigure(1);imshow(img);tic;restored_img=NLmeansfilter(single(img),21,7,5);timeused=toc;figure(2);imshow(restored_img,);title(滤波后图像);imwrite(uint8(re

12、stored_img),restored_img.bmp,bmp);functionoutput=NLmeansfilter(input,t,f,h)mn=size(input);Output=zeros(m,n);input2=padarray(input,ff,symmetric);kernel=make_kernel(f);kernel=kernel/sum(sum(kernel);fori=1:mforj=1:ni1=i+f;j1=j+f;W1=input2(i1-f:i1+f,j1-f:j1+f);wmax=0;average=0;sweight=0;rmin=max(i1-t,f+

13、1);rmax=min(i1+t,m+f);smin=max(j1-t,f+1);smax=min(j1+t,n+f);forr=rmin:1:rmaxfors=smin:1:smaxif(r=i1&s=j1)continue;end;W2=input2(r-f:r+f,s-f:s+f);d=sum(sum(kernel.*single(W1-W2).*(W1-W2);w=exp(-d/h);ifwwmaxwmax=w;endsweight=sweight+w;W3=input2(r,s);average=average+w*single(W3);endendaverage=average+wmax*single(input2(i1,j1);sweight=sweight+wmax;ifsweight0output(i,j)=average/sweight;elseoutpu

温馨提示

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

最新文档

评论

0/150

提交评论