matlab图像复原维纳滤波,最小二乘方,L-R,盲去卷积图像复原比较的程序代码

发布网友 发布时间:2022-04-24 01:35

我来回答

1个回答

热心网友 时间:2023-10-18 23:32

clc;clear all;
%读原始图像%
format long
Blurred=imread('fig525(b).bmp');
subplot(1,2,1);imshow( Blurred);title('原图像');

%自编函数进行维纳滤波%
k=0.0025;
[m,n]=size(Blurred);
spectrum=zeros(m,n);
H=zeros(m,n);
for u=1:m

for v=1:n

H(u,v)=exp(-k*((u-m/2)^2+(v-n/2)^2)^(5/6));

spectrum(u,v)=H(u,v)^2;

end
end

f=double(Blurred);
F1=fftshift(fft2(f));
HW=H./(spectrum+0.001);

restore1=HW.*F1;
restored=real(ifft2(ifftshift(restore1)));

subplot(1,2,2);imshow(restored,[]);title('自编函数进行维纳滤波');

%调用matlab提供的维纳滤波函数%
figure;
hw1=real(ifft2(ifftshift(H)));%转化到空域上来
result1=deconvwnr(Blurred,hw1,0.001);
result2=ifftshift(result1);%再去图像进行1,3象限对调,2与4象限对调
subplot(1,2,1);imshow(result2,[]);title('调用维纳滤波函数');追问程序跑出来只有源图像,而且我需要的是4种方法比较

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com