资源描述:
《第06章图像复原ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章图像复原(2)imagerestoration——运动模糊复原1234(a)模糊图像(b)恢复后的图像匀速运动引起的图像模糊沿水平方向匀速运动造成的模糊图像的恢复处理在获取图像过程中,由于景物和摄像机之间的相对运动,往往造成图像的模糊。其中由均匀直线运动所造成的模糊图像的恢复问题更具有一般性和普遍意义。因为变速的、非直线的运动在某些条件下可以看成是均匀的、直线运动的合成结果。5由匀速运动引起的模糊设图像f(x,y)有一个平面运动,令x0(t)和y0(t)分别为在x和y方向上运动的变化分量,t表示运动的时
2、间。记录介质的总曝光量是在快门打开到关闭这段时间的积分。则模糊后的图像为其中g(x,y)为模糊后的图像。上式就是由目标物或摄像机相对运动造成图像模糊的模型。6令G(u,v)为模糊图像g(x,y)的傅立叶变换,两边傅立叶变换得:由匀速运动引起的模糊改变积分次序,则有由傅立叶变换的位移性质,可得7则可得G(u,v)=H(u,v)F(u,v)令这是已知退化模型的傅立叶变换式。若x(t)、y(t)的性质已知,传递函数可直接求出,因此,f(x,y)可以恢复出来。由水平方向均匀直线运动造成的图像模糊的模型及其恢复用以下两
3、式表示:由匀速运动引起的模糊8可产生一个反映匀速直线运动的二维滤波器(以水平线为0角度基准,按逆时针旋转角度Theta方向移动Len个像素)。用MATLAB函数产生运动模糊图像PSF=fspecial('motion',Len,Theta)例:PSF=fspecial('motion',15,35)9PSF:isthepoint-spreadfunctionNSR:isthenoise-to-signalpowerratiooftheadditivenoiseNCORR:istheautocorrelatio
4、nfunctionofthenoiseICORR:istheautocorrelationfunctionoftheoriginalimage用MATLAB函数复原模糊图像J=deconvwnr(I,PSF,NSR)J=deconvwnr(I,PSF,NCORR,ICORR)NotethattheoutputimageJcouldexhibitringingintroducedbythediscreteFouriertransformusedinthealgorithm.Toreducetheringing
5、useI=edgetaper(I,PSF)priortocallingDECONVWNR.10edgetaper(I,PSF)函数由于图像的边界对图像而言是不连续的,因此复原操作常常会产生“环”。复原前可用edgetaper(I,PSF)函数进行预处理。TheEDGETAPERfunctionblurstheedgesoforignalimageIusingthePSF,andreducestheringingeffectinimagedeblurringmethodsthatusethediscreteFo
6、uriertransform,suchasDECONWNR,DECONVREG,andDECONVLUCY.11I=imread('cameraman.tif');PSF=fspecial('gaussian',120,20);edgesTapered=edgetaper(I,PSF);figure,imshow(I,[])figure,imshow(edgesTapered,[])12clearall;closeall;clcI=imread('football.jpg');figure(1);imshow
7、(I);%设置运动位移为28个像素LEN=28;%设置运动角度为15度THETA=15;%建立二维仿真线性运动滤波器PSFPSF=fspecial('motion',LEN,THETA);%用PSF产生退化图像MF=imfilter(I,PSF,'circular','conv');figure(2);imshow(MF);%用Wiener滤波消除运动模糊的图像wnr=deconvwnr(MF,PSF);figure,imshow(wnr);例:用MATLAB程序实现由于运动图像模糊和去除运动模糊。13cle
8、arall;closeallI=im2double(imread('cameraman.tif'));imshow(I);title('OriginalImage(courtesyofMIT)');%Simulateamotionblur.LEN=21;THETA=11;PSF=fspecial('motion',LEN,THETA);blurred=imfilter(I,PSF,'conv','c