用matlab编程实现数字图像理想低通滤波、高斯低通滤波和巴特沃斯低通滤波去噪算法

1 理想低通滤波

%理想低通
I = imread('fig.png');
I=rgb2gray(I);
figure(1);
subplot(221),imshow(I);
title('原图像');
I=imnoise(I,'gaussian');%%加入高斯白噪声
subplot(222),imshow(I);
title('加入噪声后的图像');
s=fftshift(fft2(I));
subplot(223), imshow(log(abs(s)),[]); 
title('图像傅里叶变换取对数所得频谱');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=50;
for i=1:a 
    for j=1:b 
        distance=sqrt((i-a0)^2+(j-b0)^2);
        if distance<=d
            h=1;
        else
            h=0;
        end
        s(i,j)=h*s(i,j);
    end
end
s=uint8(real(ifft2(ifftshift(s))));
subplot(224),imshow(s);
title('理想低通滤波所得图像'); 

用matlab编程实现数字图像理想低通滤波、高斯低通滤波和巴特沃斯低通滤波去噪算法_第1张图片

2 高斯低通滤波

%高斯低通
I=rgb2gray(imread('fig.png'));
IA=imnoise(I,'gaussian');%%加入高斯白噪声
subplot(222),imshow(IA);
title('加入噪声后的图像');
[f1,f2]=freqspace(size(IA),'meshgrid');
D=100/size(IA,1);
r=f1.^2+f2.^2;
Hd=ones(size(IA));
for i=1:size(IA,1)
    for j=1:size(IA,2)
        t=r(i,j)/(D*D);
        Hd(i,j)=exp(-t);
    end
end
Y=fft2(double(IA));
Y=fftshift(Y);
Ya=Y.*Hd;
Ya=ifftshift(Ya);
Ia=real(ifft2(Ya));
subplot(221),imshow(uint8(I));
title('原图像');
subplot(223),imshow(uint8(Ia));
title('高斯低通滤波处理');

用matlab编程实现数字图像理想低通滤波、高斯低通滤波和巴特沃斯低通滤波去噪算法_第2张图片

3 巴特沃斯低通滤波

clear all;
%巴特沃斯低通
figure(2);
I=rgb2gray(imread('fig.png'));
subplot(221),imshow(I);
title('原始图像');
I1=imnoise(I,'gaussian');%%加入高斯白噪声
subplot(222),imshow(I1);
title('加入噪声后的图像');
f=double(I1);%数据类型转换
g=fft2(f);%图像傅里叶转换 
g=fftshift(g);%傅里叶变换平移
F2=log(abs(g));%对傅里叶变换结果取绝对值,然后取对数
[N1,N2]=size(g);%傅里叶变换图像尺寸
n=2;%参数赋初始值
d0=30;
n1=fix(N1/2);%数据圆整
n2=fix(N2/2);%数据圆整
for i=1:N1%遍历图像像素
    for j=1:N2 
        d=sqrt((i-n1)^2+(j-n2)^2);
        if d==0 
            h=0; 
        else
            h=1/(1+(d/d0)^(2*n));
        end
        result(i,j)=h*g(i,j);%?图像矩阵计算处理
    end
end
F3=log(abs(result));%对傅里叶变换结果取绝对值,然后取对数
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
subplot(223),imshow(uint8(X3))
title('Butterworth低通滤波图像');

用matlab编程实现数字图像理想低通滤波、高斯低通滤波和巴特沃斯低通滤波去噪算法_第3张图片

你可能感兴趣的:(用matlab编程实现数字图像理想低通滤波、高斯低通滤波和巴特沃斯低通滤波去噪算法)