# 【转】图像复原的matlab代码

1．维纳滤波复原

I=checkerboard(8);
noise=0.1*randn(size(I));
PSF=fspecial('motion',21,11);
Blurred=imfilter(I,PSF,'circular');
BlurredNoisy=im2uint8(Blurred+noise);
NP=abs(fftn(noise)).^2;
NPOW=sum(NP(:)/prod(size(noise));
NCORR=fftshift(real(ifftn(NP)));
IP=abs(fftn(I)).^2;
IPOW=sum(IP(:)/prod(size(noise));
ICORR=fftshift(real(ifftn(IP)));
ICORR1=ICORR(:,ceil(size(I,1)/2));
NSR=NPOW/IPOW;
subplot(221);imshow(BlurredNoisy,[]);
title('模糊和噪声图像');
subplot(222);imshow(deconvwnr(BlurredNoisy,PSF,NSR),[]);
title('deconbwnr(A,PSF,NSR)');
subplot(223);imshow(deconvwnr(BlurredNoisy,PSF,NCORR,ICORR),[]);
title('deconbwnr(A,PSF,NCORR,ICORR)');
subplot(224);imshow(deconvwnr(BlurredNoisy,PSF,NPOW,ICORR1),[]);
title('deconbwnr(A,PSF,NPOW,ICORR_1_D)');

２．规则化滤波复原程序

I=checkerboard(8);
PSF=fspecial('gaussian',7,10);
V=.01;
BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);
NOISEPOWER=V*prod(size(I));
[J LAGRA]=deconvreg(BlurredNoisy,PSF,NOISEPOWER);
subplot(221);imshow(BlurredNoisy);
title('A=Blurred and Noisy');
subplot(222);imshow(J);
title('[J LAGRA]=deconvreg(A,PSF,NP)');
subplot(223);imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA/10));
title('deconvreg(A,PSF,[],0.1*LAGRA)');
subplot(225);imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA/10))
subplot(224);imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA*10));
title('deconvreg(A,PSF,[],10*LAGRA');

## 3．Lucy-Richardson复原程序举例

%Lucy-Richardson复原程序
I=checkerboard(8);
PSF=fspecial('gaussian',7,10);
V=.0001;
BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);
WT=zeros(size(I));
WT(5:end-4,5:end-4)=1;
J1=deconvlucy(BlurredNoisy,PSF);
J2=deconvlucy(BlurredNoisy,PSF,20,sqrt(V));
J3=deconvlucy(BlurredNoisy,PSF,20,sqrt(V),[],WT);
subplot(221);imshow(BlurredNoisy);
title('A=Blurred and Noisy');
subplot(222);imshow(J1);
title('deconvlucy(A,PSF)');
subplot(223);imshow(J2);
title('deconvlucy(A,PSF,NI,DP)');
subplot(224);imshow(J3);
title('deconvlucy(A,PSF,NI,DP,[],WT)');

## 4．盲去卷积复原

%盲去卷积复原
I=checkerboard(8);
PSF=fspecial('gaussian',7,10);
V=.0001;
BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);
WT=zeros(size(I));
WT(5:end-4,5:end-4)=1;
INITPSF=ones(size(PSF));
FUN=inline('PSF+P1','PSF','P1');
[J P]=deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT,FUN,0);
subplot(221);imshow(BlurredNoisy);
title('A=Blurred and Noisy');
subplot(222);imshow(PSF,[]);
title('True PSF');
subplot(223);imshow(J);
title('Deblured Image');
subplot(224);imshow(P,[]);
title('Recovered PSF');

• 本文已收录于以下专栏：

## 13图像的复原

• MATLAB_matlab
• 2017年01月11日 18:50
• 6939

## matlab图像恢复程序实例

• qq_26769591
• 2016年05月30日 10:13
• 2312

## matlab图像复原

• qq_26769591
• 2016年05月30日 10:50
• 1758

## 图像复原matlab代码

• 2015年05月06日 14:59
• 2KB
• 下载

## 使用 matlab 数字图像处理（九）—— 去卷积（deconvolution，逆滤波复原）

• lanchunhui
• 2016年04月17日 19:15
• 5770

## 基于matlab图像复原处理，图像清晰化

• 2016年11月29日 15:50
• 2.4MB
• 下载

## 高斯模糊处理（图像复原）源代码

#define EXTRA_NAME "@gausssmooth." #include "loadbmp.h" #define In(x,y) lpInput[(x)+(y)*nWidth] ...
• darennet
• 2012年11月24日 20:49
• 848

## 图像复原经典matlab方法的实现

• 2010年07月21日 10:28
• 92KB
• 下载

## 【转】图像复原的matlab代码

1．维纳滤波复原 I=checkerboard(8); noise=0.1*randn(size(I)); PSF=fspecial('motion',21,11); Blurred=...
• sinat_22822467
• 2015年07月10日 14:54
• 2079

## 图像复原技术及其MATLAB实现

• 2018年01月28日 14:12
• 1.69MB
• 下载

举报原因： 您举报文章：【转】图像复原的matlab代码 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)