资源描述:
《《线性滤波器》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章线性滤波器和热传导方程针对均值滤波器,在局部性和迭代条件下,推导出:算术平均滤波器经局部化和迭代作用的极限状态是热传导方程初值问题的解,且所有的线性滤波器都具有同样的特性。5.1线性滤波器根据前面的内容知道,滤波T的过程可以看做其中,滤波器系数为w(i,j),i,j=-n,-n+1,…,-1,0,1,…,n-1,n在连续模型下,相应的变换是Tu(x)=u(x)﹡j(x)其中j(x)是事先定义的一个关于原点对称的,且满足归一化条件的函数,即通常,把上面的图像变换T称为线性滤波器,因为对于任意两幅图像f,
2、g和任意的实数a,b,T满足T(af+bg)=aT(f)+bT(g)线性滤波器的频率分析通常认为噪声是由图像中的高频信号引起的,因此在许多情况下,采用傅立叶变换的方法对图像进行滤波,即先把一副空间形式下的图像u0(x,y)通过傅立叶变换变成频率域中的形式再通过一个低通滤波器H(x,h)去掉U0(x,h)的高频分量,得到U(x,h)=H(x,h)·U0(x,h)其中低通滤波器H(x,m)满足x或h足够大时H(x,m)=0最后再通过一个傅立叶逆变换,把U(x,h)变换成空间中的图像形式u1(x,y)。若记h(x
3、,y)为H(x,h)的傅立叶逆变换,对参数t﹥0,作核函数定义如下线性滤波器Mt:u0→ht﹡u0其中*表示卷积。操作结果:u0经过滤波后得到u1,就是当t=1时,经过滤波器M1滤波后的图像。5.2算术均值滤波器迭代和热传导方程连续模型下,记算术均值滤波器算子为Mh,滤波操作为且积分区域选择一x为圆心,h为半径的圆。此时,只有在x点的h邻域D(x,h)中的值才对滤波的结果起作用。假设u0在x点附近C2连续,不失一般性,令由Taylor展式其中D表示微分算子,因此第一项:第二项:第三项:第四项同理:第五项:最
4、后一项:所以有即对事先确定的t,如果有序列{hn}和{nn}满足hn→0,nn→∞,并且nnh2n=t,记un=Mnhu0。若将Mn-1hu0看作原图像,Mnhu0看作滤波后图像,且nh2=t,(n-1)h2=s,则由上式有取极限得5.3线性滤波器和热传导方程一般的线性滤波器Mr(r为参数),经过n次迭代后的结果图像为Mnru0。可以证明,在一些适当的条件下,当滤波器的参数r逐渐缩小到0,而滤波器迭代次数n逐渐增加到∞,并且满足nr2=t时,滤波所得的结果图像也是上述热传导方程初值问题的解,因此,从迭代的角
5、度看,所有的线性滤波器本质上都是算术均值滤波器。定理:令g(x)是一个正的、有紧支集且3次连续可微的实函数,即g∈C30(RN)。同时还满足以下几个正规化条件:(1)(2)对于任何的i,j=1,…,N则对于∀t﹥0和任意实数列h以及整数n,当t=nh2且n→∞时,有这个收敛在L2(RN)空间是逐点适用的。其中,(g)n*表示g﹡g﹡g﹡g﹡g,卷积n次。所以,对于每个原始有界图像u0(x),定义Lhu0=gh﹡u0进一步可得(Lh)nu0→Ttu0,这里,(Ttu0)(x)=u(t,x)且u(t,x)是个热
6、传导方程初值问题的解这个定理的证明需要下面的两个引理和两个推论引理1:如果g满足上述条件,同时那么ĝ(x)是一个C∞函数,并且引理2:g满足定理的条件,并且如果x≠0,有
7、ĝ(x)﹤1
8、,∀x≠0则存在常数c﹥0,满足
9、ĝ(x)
10、≤1∕(1+c
11、x
12、2)推论1:当n→∞时,收敛到,即推论2:当n→∞时,5.4用热传导方程对图像进行去噪根据定理,如果把需要去噪的图像u0看做是热传导方程在0时刻的初值问题,那么对于任何一个t,解u(x,t)都是某一个线性滤波图像序列的极限,这个序列可以取为{Mhnu0}其中将热
13、传导方程初值问题的解作为滤波的结果,被滤波的图像作为方程在0时刻的初值,称这个滤波器为热传导方程滤波器,t是滤波器的尺度参数,如图,随t的增大,边缘出现了模糊。滤波过程要通过计算机来实现,所以并不要求求出方程的解析解,是通过数值解来实现的。在离散算法中,先将∂u∕∂t=△u的左边转化为差分的形式(ut-u0)∕t=△u0即ut=u0+t△u0离散情况下,计算是针对每一个像素(i,j)进行(ut)i,j=(u0)i,j+t(△u0)i,j(△u0)i,j=(uxx)i,j+(uyy)i,j=((ux)x)i,
14、j+((uy)y)i,j原图噪声图像热传导方程在迭代次数为10,5,2的去噪结果Image=imread('other.bmp');subplot(2,2,1),imshow(Image);I=imnoise(Image,'gaussian',0.01);subplot(2,2,2),imshow(I);[w,h]=size(I);I=double(I);t=0.1;N=10;fork=1:ND=zeros(w,