7.6光照不均的校正_第1页
7.6光照不均的校正_第2页
7.6光照不均的校正_第3页
7.6光照不均的校正_第4页
7.6光照不均的校正_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、7.6 光照不均的校正假设图像是由光的反射形成的,如果光源照射到景物上的照度不均,那么照度较强的部分将较亮,照度较弱的部分就较暗,并且由此引起较暗部分的图像细节不易看清。通常,对光照不均图像的校正要采用同态滤波的方法。我们知道,由光的反射形成的图像的数学模型为:f(x,y)=r(x,y)i(x,y)一般照度分量i(x,y)是均匀的或者缓变的,其频谱分量落在低频区域,反射分量r(x,y)反映图像的细节内容,它的频谱有较大的部分落在高频区域。同态滤波就是对图像取对数运算将乘积模型转化为加性模型。经过分析,取对数运算后,照度分量和反射分量所处区域不变,从而对数域将照度分量和反射分量区分开来。这时就可

2、以根据需要对照度分量和反射分量进行调整,通常为了消除照度不均的影响,应衰减照度分量的频率成份,另一方面,为了更清楚地显示景物暗区的细节,应该对反射分量进行增强。对于一般照度不均的图像,还可以采用下面简单的方法来消除其影响,下面举例说明。有这样一幅图像,图像的下部灰度比上部和中部要低。rice=imread(/rice.tif/)rice=im2double=(rice)imshow(rice)首先,估计出图像背景的照度。方法是取32X32大小的图像块中的最小值作为图像背景的照度。这里利用来blkproc函数来加快运算速度。bg32=blkproc(rice,3232,/min(x(:)/)su

3、rf(bg32)然后将粗略估计出的背景照度矩阵扩展成和原始图像大小相同的矩阵,这可以通过双三次插值实现,结果如:bg256=imresize(bg32,256256,/bicubic/)imshow(bg256)将估计出的背景照度从原始图像中减去,即可修正照度不均的影响,但是这样作的后果是图像变暗,如:d=rice-bg256imshow(d)这种后果可以通过调整图像的灰度来进行校正.我们可以指定图像的灰度范围,然后调用imadjust函数进行调整。调整之后的图像,米粒变亮,而且可以看到更多的细节,如:adjusted=imadjust(d,0max(d(:),01,1)imshow(adju

4、sted)7.7 利用小波分析工具箱去除图像噪声7.7.1小波去噪原理图像降噪方法有时域和频域两种,其工件原理是利用噪声和信号在频域上分布的不同进行的。信号主要分布在低频区域,而噪声主要分布在高频区域,但同时图像的细节也分布在高频区域,在传统的基于傅氏变换的信号去噪方法中,我们使得信号和噪声的频带重叠部分尽可能较小,这样就可以在频域通过时不改变滤波,就将信号同噪声区分开。但是当它们的频域重叠区域很大时,这种方法就无能为力了。所以,图像降噪处理中一个矛盾的问题是如何在降低图像噪声和保留图像细节上保持平衡,传统的低通滤波方法将图像的高频成分滤除,虽然能够达到降低噪声的效果,但破坏了图像细节。利用小

5、波分析的理论,可以构造一种既能够降低图像噪声,又能够保持图像细节信息的方法。假设已经获得信号的观测公式如下:yi=为+ni,i=1,2,m其中ni为零均值的白色高斯噪声,o为其方差,xi为期望信号,vi为观测值。滤除噪声1的问题可以认为是如何将x从观测y中恢复。假设离散小波变换矩阵为W则对上进行小波变换得到:Y=X+N这里,Y=Wvi,x=Wxi,N=Wni。对应于W存在逆变换矩阵M满足WM/由小波变换的特性可知,高斯噪声的小波变换仍然是高斯分布的,它均匀分布在频率尺度空间的各部分,而信号由于其带限性,它的小波变换系数仅仅集中在频率尺度空间上的有限部分,这样,从信号能量的观点来看,在小波域上,

6、所有的小波系数都对噪声有贡献,也就是噪声的能量分布在所有的小波系数上,而只有一小部分小波系数对信号能量有贡献,所以可以把小波系数分成两类,第一类小波系数仅仅由噪声变换后得到,这类小波系数幅值小,数目较多。第二类,小波系数由信号变换得来并包含噪声的变换结果,这类小波系数幅值大,数目较小。根据信号小波分界的这个特点,可以通过这种小波系数幅值上的差异来降低噪声。对信号的小波系数,设置一个阈值,大于这个阈值的小波系数认为属于第二类系数,它同时含有信号和噪声的变换结果,可以简单保留或进行后续操作,而小于这个阈值的小波系数,则认为是第一类小波系数,即完全由噪声变换而来,应该去掉这类系数。这样达到了降低噪声

7、的目的。同时由于这种方法保留大部分包含信号的小波系数,因此可以较好地保持图像细节。7.7.2MATLAB提供的去噪和压缩函数MATLAB勺小波分析工具箱提供了对信号进行去噪和压缩的一族函数。小波去噪和小波压缩的主要区别在于选择的阈值准则不同,在操作时可以采用全局阈值,也可以采用自适应阈值。l.ddencmpddencmp函数用于自动生成小波去噪或者压缩的阈值选取方案:THR,SORH,KEEPAPP,CRIT=ddencmp(IN1,IN2,X)THR,SORH,KEEPAPP=ddencmp(IN1,w,X)THR,SORH,KEEPAPP,CRIT=ddencmp(IN1,,wp,X)TH

8、R,SORH,KEEPAPP,CRIT=ddencmp(IN1,IN2,X)g据信号X和指定的参数IN1和IN2自动生成利用小波分解去噪或者压缩的阈值选择方案。IN1决定使用的目的,即: IN1=/den,:用于去除信号噪声。 IN1=/cmp:用于压缩信号。IN2指定使用小波分解还是小波包分解的方法,参数含义如下: IN2=/wv,:指定使用小波分解。 IN2=/wp/:指定使用小波包分解。返回值TH双生成的小波去噪或者压缩的阈值。SORFft定阈值的使用方式,具体内容如下: SORH=s,:使用软阈值。 SORH=h,:使用硬阈值。KEEPAP喏定是否对近似分量进行阈值处理,KEEPAPP

9、=0进行阈值处理,KEEPAPP=1行阈值处理。CRIT为使用小波包分解时采用的嫡函数的类型。2. wdenwden函数用于一维信号的小波去噪,其语法格式为:XD,CXD,LXD=wden(X,TPTR,SORH,SCAL,Nwname)XD,CXD,LXD=wden(C,L,TPTR,SORH,SCAL,Wwname)XD,CXD,LXD=wden(X,TPTR,SORH,SCAL,Nwname)对输入信号X进行去噪处理,返回经过处理的信号XD以及XD的小波分解结构CXDLXDo用户可以指定阈值选择算法,其中:TPTR=rigrsure/时,选择基于stein无偏估计理论的自适应阈值。TPT

10、R=hursure/时,选择第一种阈值选择方式的启发式改进形式。TPTR=sqtwolog/时,选择全局阈值*12log()。TPTR=minimaxi/时,选用极小极大准则确定阈值。SORFft定阈值的使用方式。 SORH=s"使用软阈值。 SORH=h"使用硬阈值。 SCA映定阈值处理是否随噪声变化,其中:SCAL=one"不随噪声方差变化。SCAL=sln"阈值根据第一层小波分解的噪声方差调整。SCAL=mln"根据各层小波分解的噪声方差调整阈值,这适合于色噪声的情况。XD,CXDLXD=wden(C,L,TPTRSORHSCALNJwn

11、ame)根据信号小波分解结构C,L对信号进行去噪处理。3. wdencmpwdencmpS数用于信号的小波分解去噪或者压缩。XC,CXCLXCPERFOPERFL2=wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAPP)XC,CXC,LXC,PERFO,PERFL2=wdencmp('Ivd',x,'wname,N,THR,SORH)XC,CXC,LXC,PERFO,PERFL2=wdencmp('Ivd',C,L,'wname',N,THR,SORH)wdencm川于一维或

12、者二维的基于小波分解的信号去噪或者压缩。XC,CXC,LXC,PERFO,PERFL2=wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAP遇回采用全局阈值对信号X进行去噪或者压缩后的信号XC以及它的小波分解结构CX5口LXGTHR®用于小波去噪或者压缩的阈值,SORHfe定阈值的使用方式,含义与ddencm函数中的含义相同。KEEPAP喏定是否对近似分量进行阈值处理,KEEPAPP=0进行阈值处理;KEEPAPP=1进行阈值处理返回值PERFQPERFL左用L-2范数度量的信号恢复率和压缩率。XC,CXCLXCPERFQ

13、PERFL2=wdencmp(lvd7,C,L,/wnameN,THR,SQRH)利用原信号的小波分解结构C,L对信号进行去噪和压缩。4.wpdencmpwpdencmpg数用于基于小波包分解的信号去噪或者压缩。wpdencmpXD,TREEDPERFQPERFL2=wpdencmp(X,SQRH,N,wname,CRIT,PAR,KEEPAPP)XD,TREED,PERFQ,PERFL2=wpdencmp(TREE,SQRH,CRIT,PAR,KEEPAPP)XD,TREED,PERFQ,PERFL2=wpdencmp(X,SQRH,N,wname,CRIT,KEEPAPP)wpdencmp

14、g数用于基于小波包分解的信号去噪或者压缩.函数返回值XD为处理后的信号,TREEDDATA为原信号的小波包分解树结构,PERFQPERFL2为采用L-2范数度量的信号的恢复率和压缩率。/wname为采用的小波基函数,CRIT和PAM采用的嫡函数及参数。用户可以根据SQR诞择阈值的实现方式,具体内容如下:SQRH叱使用值软阈值。SQRH=X使用值硬阈值。5.wthresh利用wthresh函数可以实现硬阈值和软阈值处理,其语法格式为:Y=wthresh(X,SQRH,T)它根据由SQRH旨定的阈值处理方法对输入信号X进行阈值处理,T为指定的阈值。用户可以根据SQRH&择阈值的实现方式:S

15、QRH=s7使用软阈值示为:f(x,y)=g(x,y)+n(x,y)信道噪声及扫描图像时产生的噪声都属加性噪声。乘性噪声:有的噪声与图像信号有关。这可以分为两种情况:一种是某像素处的噪声只与该像素的图像信号有关,另一种是某像点处的噪声与该像点及其邻域的图像信号有关。例如用飞点扫描器扫描图像时产生的噪声就和图像信号相关。如果噪声和信号成正比,则含噪图像f(x,y)可以表示为:f(x,y)=g(x,y)+n(x,y)g(x,y)=(1+n(x,y)g(x,y)=n1(x,y)g(x,y)另外,还可以根据噪声服从的分布对其进行分类,这时可以分为高斯噪声、泊松噪声和颗粒噪声等。泊松分布噪声一般出现在照

16、度非常小及用高倍电子线路放大的情况下,椒盐噪声可以认为是泊松的噪声。其他的情况通常为加性高斯噪声。颗粒噪声可以认为是一白噪声过程,在密度域中是高斯分布加性噪声,而在强度域中为乘性噪声。MATLAB图像处理工具箱提供了模拟噪声生成的函数imnoise,它可以对图像添加一些典型的噪声。l.imnoise1. imnoise的语法格式为:J=imnoise(I,type)J=imnoise(I,type,parameters)其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。下面的命令是对图像eight,

17、tif分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如:I=imread('eight.tif');J1=imnoise(I,'gaussiad,0,0.02);J2=imnoise(I,'salt&pepper,0.02);J3=imnoise(I,'speckle',0.02);subplot(2,2,1),imshow(I)subplot(2,2,2),imshow(J1)subplot(2,2,3),imshow(J2)subplot(2,2,4),imshow(J3)由于噪声的随机性,它们对某一像点的影响将使其灰度和邻点的灰度显著

18、不同,因此可以利用这种不同来消除噪声。MATLAB图像处理工具箱提供了多种去除图像噪声的方法,共有下列3种: 线性滤波 中值滤波 自适应滤波7.4.1线性滤波对一些图像进行线性滤波可以去除图像中某些类型的噪声,如采用领域平均法的均值滤波器就非常适用于去除通过扫描得到的图像中的颗粒噪声。邻域平均法是空间域平滑噪声技术。对于给定的图像f(i,j)中的每个像点(m,n),取其邻域s。设s含有M个像素,取其平均值作为处理后所得图像像点(m,n)处的灰度。用一像素邻域内各像素灰度平均值来代替该像素原来的灰度,即是邻域平均技术。邻域s的形状和大小根据图像特点确定。一般取的形状是正方形、矩形及十字形等,s的

19、形状和大小可以在全图处理过程中保持不变,也可根据图像的局部统计特性而变化,点(m,n)一般位于s的中心。如s为3X3邻域,点(m,n)位于s中心,则:1 11f(m,n)(mi,nj)9 ij-J假设口声n是加性噪声,在空间各点互不相关,且期望为0,方差为仃2,g是未受污染的图像,含有噪声的图像f经过邻域平均后为二1.1.1一f(m,n)f(i,j)g(i,j)n(i,j)MMM.、一212一由上式可知,经邻域平均后,噪声的均值不变,万差。2=1。,即噪声万差变小,说明噪声强度减弱了,即抑制了噪声。由上式还可看出,邻域平均法也平滑了图像信号,特别是可能使图像目标区域的边界变得模糊。可以证明,对

20、图像进行邻域平均处理相当于图像信号通过一低通滤波器。下面的命令是对一幅含噪图像进行去噪处理,其结果如:I=imread('eight,tif');I=imnoise(I,'gaussiani,0,0.02);%添加均值为0,方差为0.02的高斯噪声。Imshow(I);h=111111111;%产生滤波模板。h=h/g;%对滤波模板归一化。J=conv2(I,h);%用均值模板对图像滤波。figure,imshow(J,)7.4.2 中值滤波中值滤波是抑制噪声的非线性处理方法。对于给定的n个数值a1,a2,an,将它们按大小有序排列。当n为奇数时,位于中间位置的那个数值

21、称为这n个数值中值。当n为偶数时,位于中间位置的两个数值的平均值称为这n个数值的中值,记作med(a1,a2-an)0中值滤波就是这样的一个变换,图像中滤波后某像素的输出等于该像素邻城中各像素灰度的中值。中值滤波的方法运算简单,易于实现,而且能较好地保护边界,但有时会失掉图像中的细线和小块的目标区域。邻域的大小决定在多少个数值中求中值,窗口的形状决定在什么样的几何空问中取元素计算中值,对二维图像,窗口A的形状可以是矩形、圆形及十字形等,它的中心一般位于被处理点上。窗口大小及形状有时对滤波效果影响很大。一维信号中值滤波具有如下重要性质:1. 输入是阶跃信号或斜坡信号时,输出信号和输入信号相同。2

22、. 若输入是脉宽小于窗口一半的脉冲p,则该脉冲被滤除,否则输出和输入相同。3. 入是三角形信号时,输出时其顶部被削平。二维信号的中值滤波的性质与之类似。在MATLAB图像处理工具箱中,提供了medfilt2函数用于实现中值滤波。4. medfilt2medfilt2函数的语法格式为:B=medfilt2(A)%用于3X3的滤波窗口对图像A进行中值滤波。B=medfilt2(A,m,n)%用指定大小为mxn的窗口对图像A进行中值滤波。B=medfilt2(A,'indexed',)对索引色图像A进行中值滤波。图像A的数据类型可以是double型,也可以是uint8型。例如对加入椒

23、盐噪声的图像eight.tif作中值滤波,结果如:I=imread('eight.tif');J=imnoise(I,'salt&pepper',0.02);K=medfilt2(J);Subplot(1,2,1),imshow(J)Subplot(1,2,2),imshow(k)可以看出,中值滤波对于滤除图像的椒盐噪声非常有效,在去噪图像上椒盐噪声的斑点全部被去除。另外MATLAB图像处理工具箱还提供了二维统计顺序滤波函数ordfilt2。二维统计顺序滤波是中值滤波的推广,对于给定的n个数值a1,a2,an,将它们按大小顺序排列,将处于第k个位置的元素

24、作为图像滤波输出,即序号为k的二维统计滤波。5. ordfilt2ordfilt2函数的语法格式为:Y=ordfilt2(x,order,domain)Y=ordfilt2(x,order,domain,s)这里Y=ord巾lt2(x,order,domain)对图像X作顺序统计滤波,order为滤波器输出的顺序值,domain为滤波窗口。S是与domain大小相同的矩阵,它是对应domain中非零值位置的输出偏置,这在图像形态学中很有用。例如:Y=ordfilt2(x,5,ones(3,3),相当于3X3的中值滤波。Y=ordfilt2(x,1,ones(3,3),相当于3X3的最小值滤波。Y=ordfilt2(x,9,ones(3,3),相当于3X3的最大值滤波。Y=ordfilt2(x,1,010;101;010)的输出是每个像素的东、西、南、北4个方向相邻像素灰度的最小值。7.4.3 自适应

温馨提示

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

评论

0/150

提交评论