资源描述:
《图像复原方面的实验代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、图像复原方面的实验:2、最小二乘类(有约束的)复原:程序:I1=imread('lena.bmp');%读取原始图像I=rgb2gray(I1);LEN=31;%图像的模糊化THETA=11;PSF1=fspecial('motion',LEN,THETA);PSF2=fspecial('gaussian',10,5);Blurred1=imfilter(I,PSF1,'circular','conv');Blurred2=imfilter(I,PSF2,'conv');%模糊化图像加噪V=.002;BlurredNoisy1=imnoise(Blurr
2、ed1,'gaussian',0,V);BlurredNoisy2=imnoise(Blurred2,'gaussian',0,V);figure,subplot(1,3,1);imshow(I)title('lena')%用真实的PSF函数和噪声强度作为参数进行图像复原NP=V*prod(size(I));reg1=deconvreg(BlurredNoisy1,PSF1,NP);reg2=deconvreg(BlurredNoisy2,PSF2,NP);figure;subplot(1,3,2);imshow(reg1);title('Restore
3、d1withNP')figure;subplot(1,3,3);imshow(reg2);title('Restored2withNP')得到的结果如下:原图:“motion”复原图像:“Gaussian”复原图像1、维纳滤波(最小二乘)程序:I1=imread('lena.bmp');%读取原始图像I=rgb2gray(I1);LEN=31;%图像的模糊化THETA=11;PSF1=fspecial('motion',LEN,THETA);PSF2=fspecial('gaussian',10,5);Blurred1=imfilter(I,PSF1,'
4、circular','conv');Blurred2=imfilter(I,PSF2,'conv');figure,imshow(I)title('lena')%用真实的PSF函数作为参数进行图像复原reg1=deconvwnr(Blurred1,PSF1);reg2=deconvwnr(Blurred1,PSF2);figure;imshow(reg1);title('Restored1withNP')figure;imshow(reg2);title('Restored2withNP')得到的结果如下:原图:“Motion”复原图:“guassian
5、”复原图:在上述程序的基础上做一些改动,如下:%用真实的PSF函数和噪声强度作为参数进行图像复原reg1=deconvwnr(Blurred1,PSF1);reg2=deconvwnr(Blurred1,fspecial('motion',2*LEN,THETA));reg3=deconvwnr(Blurred1,fspecial('motion',LEN,2*THETA));figure;imshow(reg1);title('Restored1withNP')figure;imshow(reg2);title('Restored2withNP')fi
6、gure;imshow(reg3);得到如下结果:过大的模糊距离参数:过大的模糊运动方向角度参数:3、Lucy_Richardson滤波复原程序:I1=imread('lena.bmp');I=rgb2gray(I1);%I=I(50+[1:256],2+[1:256],:);figure;imshow(I);title('OriginalImage');PSF=fspecial('gaussian',5,5);Blurred=imfilter(I,PSF,'symmetric','conv');V=.002;BlurredNoisy=imnoise(B
7、lurred,'gaussian',0,V);figure;imshow(BlurredNoisy);title('Blurred&Noisy');luc1=deconvlucy(BlurredNoisy,PSF,5);figure;imshow(luc1);title('RestoredImage,NUMIT=5');得到的结果图:模糊加噪复原图像:4、盲解卷积复原程序:I1=imread('lena.bmp');>>I=rgb2gray(I1);>>PSF=fspecial('motion',13,45);>>figure,imshow(PSF,[]
8、);>>Blurred=imfilter(I,PSF,'circ','conv'