【转】图像复原的matlab代码

转载 2015年07月10日 14:54:10

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)');



2.规则化滤波复原程序


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
  • MATLAB_matlab
  • 2017年01月11日 18:50
  • 6939

matlab图像恢复程序实例

目录目录 1维纳滤波复原 2规则化滤波复原程序 3Lucy-Richardson复原程序举例 4盲去卷积复原 1.维纳滤波复原I=checkerboard(8); noise=0.1*randn(si...
  • qq_26769591
  • qq_26769591
  • 2016年05月30日 10:13
  • 2312

matlab图像复原

目录目录 频谱噪声分析 四幅图像分别处理 大气湍流处理1. 频谱噪声分析在进行图像复原之前,首先对各个图像做傅里叶变换在频谱中观察分布情况,由此判断噪声或模糊类型。i1=imread('1.png')...
  • qq_26769591
  • qq_26769591
  • 2016年05月30日 10:50
  • 1758

图像复原matlab代码

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

使用 matlab 数字图像处理(九)—— 去卷积(deconvolution,逆滤波复原)

在没有噪声的情况下,频域退化模型可由下式给出:G(u,v)=H(u,v)F(u,v) G(u,v)=H(u,v)F(u,v)G(u,v)G(u,v) :退化图像; H(u,v)H(u,v) :退化函数...
  • lanchunhui
  • 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
  • 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
  • sinat_22822467
  • 2015年07月10日 14:54
  • 2079

图像复原技术及其MATLAB实现

  • 2018年01月28日 14:12
  • 1.69MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【转】图像复原的matlab代码
举报原因:
原因补充:

(最多只允许输入30个字)