图像复原方面的实验代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档