MATLAB--高斯低通滤波器的实现

高斯低通滤波器函数

function [image_out] = GLPF(image_in,D0)
%GLPF为高斯低通滤波器,D0为截止频率
%输入为需要进行高斯低通滤波的灰度图像,输出为经过滤波之后的灰度图像
f=image_in;
f=im2double(f);
% 1、给定一副大小为M×N的输入图像f(x,y),得到填充参数P=2M,Q=2N
M=size(f,1);   N=size(f,2);
P=2*M;          Q=2*N; 
% 2、对输入图像f(x,y)添加必要数量的0,形成大小为P×Q的填充图像fp(x,y)
fp=zeros(P,Q);
fp(1:M,1:N)=f(1:M,1:N);
% 3、用(-1)^(x+y)乘以fp(x,y)移到其变换的中心
for i=1:P
    for j=1:Q
        fp(i,j)=(-1)^(i+j)*double(fp(i,j));
    end
end
% 4、计算来自步骤3的图像的DFT,得到F(u,v)
F=fft2(fp,P,Q);
% 5、生成一个实的、对称的滤波函数H(u,v),其大小为P×Q,中心在(P/2,Q/2)处。用阵列相乘形成乘积G(u,v)=H(u,v)F(u,v)
H=zeros(P,Q);
a=2*(D0^2);
for u=1:P
    for v=1:Q
        D=(u-P/2)^2+(v-Q/2)^2;
        H(u,v)=exp(-D./a);
    end
end
G=F.*H; %频率域滤波
% 6、得到处理后的图像
gp=ifft2(G); %频域转换到时域图像
gp=real(gp);
for i=1:P
    for j=1:Q
        gp(i,j)=(-1)^(i+j)*double(gp(i,j));
    end
end
% 7、通过从gp(x,y)的左上象限提取M×N区域,得到最终处理结果g(x,y)
image_out=gp(1:M,1:N);  
end

函数调用

clear all;  close all;  clc;
% 字符识别的应用
A=imread('G:\picture\Fig0419(a)(text_gaps_of_1_and_2_pixels).tif');  
out1=GLPF(A,80);
figure;
subplot(1,2,1);  imshow(A);  title('低分辨率文本');
subplot(1,2,2);  imshow(out1);  title('DLPF滤波的结果');


%“美容”处理
B=imread('G:\picture\Fig0450(a)(woman_original).tif');
out2=GLPF(B,100);
out3=GLPF(B,80);
figure;
subplot(1,3,1);  imshow(B);  title('原图像');
subplot(1,3,2);  imshow(out2);  title('D0=100的GLPF');
subplot(1,3,3);  imshow(out3);  title('D0=80的GLPF');

%卫星图像和航空图像的处理
C=imread('G:\picture\Fig0451(a)(satellite_original).tif');
out4=GLPF(C,50);
out5=GLPF(C,20);
figure;
subplot(1,3,1);  imshow(C);  title('显示有突出扫描线的图像');
subplot(1,3,2);  imshow(out4);  title('D0=50的GLPF');
subplot(1,3,3);  imshow(out5);  title('D0=20的GLPF');

实验结果图

figure1
figure2
figure3

  • 7
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值