图像复原方面的实验代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像复原方面的实验:
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(Blurred1,'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('Restored1 with NP')
figure;
subplot(1,3,3) ;imshow(reg2);
title('Restored2 with NP')
得到的结果如下:
原图:
“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,'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('Restored1 with NP')
figure;
imshow(reg2);
title('Restored2 with NP')得到的结果如下:
原图:
“Motion”复原图:
“guassian”复原图:
在上述程序的基础上做一些改动,如下:
%用真实的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('Restored1 with NP')
figure;
imshow(reg2);
title('Restored2 with NP')
figure;
imshow(reg3);
得到如下结果:
过大的模糊距离参数:
过大的模糊运动方向角度参数:
3、Lucy_Richardson滤波复原
程序:
I1=imread('lena.bmp');
I=rgb2gray(I1);
% I=I(50+[1:256],2+[1:256],:);
figure;imshow(I);title('Original Image');
PSF=fspecial('gaussian',5,5);
Blurred=imfilter(I,PSF,'symmetric','conv');
V=.002;
BlurredNoisy=imnoise(Blurred,'gaussian',0,V);
figure;imshow(BlurredNoisy);title('Blurred & Noisy'); luc1=deconvlucy(BlurredNoisy,PSF,5);
figure;imshow(luc1);title('Restored Image,NUMIT=5');得到的结果图:
模糊加噪
复原图像:
4、盲解卷积复原
程序:
I1=imread('lena.bmp');
>> I=rgb2gray(I1);
>> PSF=fspecial('motion',13,45);
>> figure,imshow(PSF,[]);
>> Blurred=imfilter(I,PSF,'circ','conv'); >> figure,imshow(Blurred);
>> INITPSF=ones(size(PSF));
>> [J P]=deconvblind(Blurred,INITPSF,30);