有约束的最小二乘方图像复原方法_matlab图像复原算法

维纳滤波复原法

维纳滤波就是最小二乘滤波,它是使原始图像与其恢复图像之间的均方误差最小的复原方法,对图像进行维纳滤波主要是为了消除图像中的噪声。

示例:利用维纳滤波器进行复原处理

编写对应的m文件如下:

clear all;

clc;

I=zeros(800,800);

I(300:500,500:600)=1;

noise=0.1*randn(size(I));

PSF=fspecial('motion',21,11);

Blurred=imfilter(I,PSF,'circular');

Blurrednoise=im2uint8(Blurred+noise);

NSR=sum(noise(:).^2)/sum(I(:).^2);%%信噪比倒数%%

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(I));

ICORR=fftshift(real(ifftn(IP)));

ICORR1=ICORR(:,ceil(size(I,1)/2));

NSR=NPOW/IPOW;

subplot(2,2,1)

imshow(Blurrednoise,[]);

title('Blurred and noise图像');

subplot(2,2,2)

imshow(deconvwnr(Blurrednoise,PSF,NSR),[]);

title('deconvwnr(A,PSF,NSR)图像');

subplot(2,2,3)

imshow(deconvwnr(Blurrednoise,PSF,NCORR,ICORR),[]);

title('deconvwnr(A,PSF,NCORR,ICORR)图像');

subplot(2,2,4)

imshow(deconvwnr(Blurrednoise,PSF,NPOW,ICORR1),[]);

title('deconvwnr(A,PSF,NPOW,ICORR1)图像');

程序运行结果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值