数字图像处理实验八图像复原学习教案.pptx
会计学1数字图像处理实验数字图像处理实验(shyn)八图像复原八图像复原第一页,共23页。以高斯以高斯(o s)噪声为噪声为例例灰度概率分布函数灰度概率分布函数(hnsh):=120,=30时:时:灰度概率分布灰度概率分布频频 谱谱第2页/共23页第二页,共23页。MATLAB中叠加噪声中叠加噪声(zoshng)的的函数:函数:输出图像输出图像(t xin)名名=imnoise(输入图像输入图像(t xin)名名,噪声类型噪声类型,噪声参数噪声参数);加高斯噪声:加高斯噪声:fxynoise1=imnoise(fxy,gaussian,0,0.001);加椒盐加椒盐(jioyn)噪声:噪声:fxynoise2=imnoise(fxy,salt&pepper,0.4);加均匀噪声:加均匀噪声:fxynoise3=imnoise(fxy,speckle,0.03);第3页/共23页第三页,共23页。第4页/共23页第四页,共23页。第5页/共23页第五页,共23页。周期噪声周期噪声(zoshng)实例实例第6页/共23页第六页,共23页。二、白噪声二、白噪声(zoshng)引起退化图像复原的基本方法引起退化图像复原的基本方法w1w2w3w4w5w6w7w8w91.均值均值(jn zh)滤波:滤波:111111111%本例演示算术均值本例演示算术均值(jn zh)滤波器滤波器a=imread(circuit.bmp);a=a(:,:,3);subplot(1,3,1),imshow(a,),title(原始图像原始图像),ra,ca=size(a);a1=double(imnoise(a,gaussian,0,0.01);%叠加严重的高斯噪声叠加严重的高斯噪声%选定滤波器的大小为选定滤波器的大小为stst,st可调可调st=3,h=ones(st,st);g=filter2(h,a1)./sum(sum(h);subplot(1,3,2),imshow(a1,),title(有高斯噪声的输入图像有高斯噪声的输入图像),subplot(1,3,3),imshow(g,),title(算术均值算术均值(jn zh)滤波后的图像,用滤波后的图像,用33掩模掩模)第7页/共23页第七页,共23页。第8页/共23页第八页,共23页。2.自适应自适应(shyng)中值滤波器:中值滤波器:输入待处理图像输入待处理图像给出给出Smax的大小的大小设定设定St起始大小起始大小给出给出Sxy区域区域计算计算Zmin、Zmax、Zmed和和A1=Zmed-Zmin,A2=Zmed-ZmaxA10A20B20B1=Zxy-Zmin,B2=Zxy-Zmax增大增大Sxy是是否否是是是是否否否否检查检查(jinch)Zmed 是否是冲击噪声是否是冲击噪声检查检查(jinch)Zxy 是否是冲击噪声是否是冲击噪声第9页/共23页第九页,共23页。a=imread(circuit.bmp);a=a(:,:,3);ra,ca=size(a);a1=imnoise(a,salt&pepper,0.25);a1=double(a1);%选定最小滤波器的大小为选定最小滤波器的大小为stst,st可调可调,但取奇数但取奇数st=3,Sxymin=zeros(st,st);%预先留出邻域预先留出邻域%选定第二选定第二(d r)滤波器的大小为(滤波器的大小为(st+2)(st+2)Sxymed=zeros(st+2,st+2);%预先留出邻域预先留出邻域%选定第二选定第二(d r)滤波器的大小为(滤波器的大小为(st+4)(st+4)Sxymax=zeros(st+4,st+4);%预先留出邻域预先留出邻域 a=zeros(ra+2.*st,ca+2.*st);%预先留出一个图像预先留出一个图像a(st+1:ra+st,st+1:ca+st)=a1;%将输入图像放大到(将输入图像放大到(ra+2.*st)(ca+2.*st)g=zeros(ra+2.*st,ca+2.*st);%预先留出输出图像预先留出输出图像subplot(1,3,1),imshow(a,),title(有严重椒盐噪声的输入有严重椒盐噪声的输入)第10页/共23页第十页,共23页。for n=st+1:ra+st for m=st+1:ca+st for nn=1:st+4 for mm=1:st+4 Sxymax(nn,mm)=a(n+nn-st-1,m+mm-st-1);%赋掩模内的值赋掩模内的值 end end zxy=a(n,m);Sxymin=Sxymax(3:st+2,3:st+2);Sxymed=Sxymax(2:st+3,2:st+3);sortSxymin=sort(Sxymin(:);%将像素将像素(xin s)按升序排列按升序排列 sortSxymed=sort(Sxymed(:);%将像素将像素(xin s)按升序排列按升序排列 sortSxymax=sort(Sxymax(:);%将像素将像素(xin s)按升序排列按升序排列 zminmin=sortSxymin(1,1);%排序后的最小像素排序后的最小像素(xin s)的值为灰度的最小值的值为灰度的最小值zminmin zmedmin=sortSxymed(1,1);%排序后的最小像素排序后的最小像素(xin s)的值为灰度的最小值的值为灰度的最小值zmedmin zmaxmin=sortSxymax(1,1);%排序后的最小像素排序后的最小像素(xin s)的值为灰度的最小值的值为灰度的最小值zmaxmin zminmed=sortSxymin(st+2);%排序后的第排序后的第st+2个像素个像素(xin s)的值是中值的值是中值zminmed zmedmed=sortSxymed(st.*4+1);%排序后的第排序后的第st.*4+1个像素个像素(xin s)的值是中值的值是中值zmedmed zmaxmed=sortSxymax(st.*8+1);%排序后的第排序后的第st.*8+1个像素个像素(xin s)的值是中值的值是中值zmaxmed zminmax=sortSxymin(st.*st);%第第st.*st个像素个像素(xin s)的值是最大值的值是最大值zminmax zmedmax=sortSxymed(st+2).*(st+2);%第第(st+2).*(st+2)个像素个像素(xin s)的值是最大值的值是最大值zmedmax zmaxmax=sortSxymax(st+4).*(st+4);%第第(st+4).*(st+4)个像素个像素(xin s)的值是最大值的值是最大值zmaxmax第11页/共23页第十一页,共23页。if zminminzminmed&zminmedzminmax if zminminzxy&zxyzminmax g(n,m)=zxy;else g(n,m)=zminmed;end else if zmedminzmedmed&zmedmedzmedmax if zmedminzxy&zxyzmedmax g(n,m)=zxy;else g(n,m)=zmedmed;end else if zmaxminzmaxmed&zmaxmedzmaxmax if zmaxminzxy&zxyzmaxmax g(n,m)=zxy;else g(n,m)=zmaxmed;end else g(n,m)=zxy;end end end endendsubplot(1,3,2),imshow(g,),title(自适应(shyng)中值滤波器的处理结果)b=medfilt2(a,7,7);subplot(1,3,3),imshow(b,),title(77 中值滤波器的处理结果)第12页/共23页第十二页,共23页。第13页/共23页第十三页,共23页。三、周期三、周期(zhuq)噪声引起退化图像复原的基本方法噪声引起退化图像复原的基本方法调入退化图像调入退化图像得到退化图像频谱得到退化图像频谱查找噪声频谱查找噪声频谱选择合适的滤波器选择合适的滤波器对退化图像滤波对退化图像滤波复原退化图像复原退化图像得到噪声分布得到噪声分布FFTIFFTIFFTFFT滤波器滤波器1滤波器滤波器2IFFTIFFT第14页/共23页第十四页,共23页。a=imread(coulomb.bmp);fxy=a(:,:,1);fxy=double(fxy);ra,ca=size(fxy);Fuv=fftshift(fft2(fxy);subplot(1,2,1),imshow(fxy,);title(原始图像原始图像)subplot(1,2,2),imshow(abs(Fuv),0,250000);title(原始图像的频谱原始图像的频谱)u=1:ra;v=1:ca;u,v=meshgrid(u,v);u0=129-99;%噪声在频谱面上噪声在频谱面上(min shn)的中心的中心v0=129-99;%噪声在频谱面上噪声在频谱面上(min shn)的中心的中心D0=10%陷波区域的半径陷波区域的半径Duv1=(u-ra/2-u0).2+(v-ca/2-v0).2).0.5;Duv2=(u-ra/2+u0).2+(v-ca/2+v0).2).0.5;第15页/共23页第十五页,共23页。%先使用理想陷波滤波器先使用理想陷波滤波器Huv1=ones(ra,ca);Huv1(Duv1=D0|Duv2=D0)=0;figuresubplot(1,2,1),imshow(Huv1,),title(理想陷波滤波器理想陷波滤波器)Guv1=Huv1.*Fuv;fxyyp1=ifft2(Guv1);fxyyp1=abs(fxyyp1);subplot(1,2,2),imshow(fxyyp1,);title(理想陷波滤波器的处理结果理想陷波滤波器的处理结果)noise1=fxyyp1-fxy;%理想陷波滤波器找到的噪声理想陷波滤波器找到的噪声 D0=20;%要获得同样的效果,陷波区域的半径要获得同样的效果,陷波区域的半径(bnjng)要大很多要大很多%下面使用巴特沃思陷波滤波器下面使用巴特沃思陷波滤波器n=4%滤波器的阶数,可调滤波器的阶数,可调Huv2=zeros(ra,ca);Huv2=1./(1+(D0.2./(Duv1.*Duv2+eps).(n);figuresubplot(1,2,1),mesh(Huv2),title(巴特沃思陷波滤波器巴特沃思陷波滤波器)Guv2=Huv2.*Fuv;fxyyp2=ifft2(Guv2);fxyyp2=abs(fxyyp2);subplot(1,2,2),imshow(fxyyp2,);title(巴特沃思陷波滤波器的处理结果巴特沃思陷波滤波器的处理结果)noise2=fxyyp2-fxy;%巴特沃思陷波滤波器找到的噪声巴特沃思陷波滤波器找到的噪声第16页/共23页第十六页,共23页。%下面下面(xi mian)使用高斯陷波滤波器使用高斯陷波滤波器Huv3=zeros(ra,ca);Huv3=1-exp(-0.5.*(Duv1.*Duv2)./(D0.2+eps);figuresubplot(1,2,1),mesh(Huv3),title(高斯陷波滤波器高斯陷波滤波器)Guv3=Huv3.*Fuv;fxyyp3=ifft2(Guv3);fxyyp3=abs(fxyyp3);subplot(1,2,2),imshow(fxyyp3,);title(高斯陷波滤波器的处理结果高斯陷波滤波器的处理结果)noise3=fxyyp3-fxy;%高斯陷波滤波器找到的噪声高斯陷波滤波器找到的噪声 figuresubplot(1,3,1),imshow(noise1,);title(理想陷波滤波器找到的噪声理想陷波滤波器找到的噪声)subplot(1,3,2),imshow(noise2,);title(巴特沃思陷波滤波器找到的噪声巴特沃思陷波滤波器找到的噪声)subplot(1,3,3),imshow(noise3,);title(高斯陷波滤波器找到的噪声高斯陷波滤波器找到的噪声)第17页/共23页第十七页,共23页。第18页/共23页第十八页,共23页。第19页/共23页第十九页,共23页。实验实验(shyn)结果结果原图(yun t)椒盐(jioyn)噪声高斯噪声灰度直方图灰度直方图灰度直方图第20页/共23页第二十页,共23页。选择选择(xunz)适合的滤波器滤噪适合的滤波器滤噪椒盐椒盐(jioyn)噪声噪声高斯高斯(o s)噪声噪声倾斜条纹倾斜条纹第21页/共23页第二十一页,共23页。思考题思考题n n1.怎么判断一幅图像的噪声类型n n2.如何(rh)针对噪声选择滤波器第22页/共23页第二十二页,共23页。感谢您的观看感谢您的观看(gunkn)!第23页/共23页第二十三页,共23页。