四种低通滤波器

今天介绍四种低通滤波器对信号频率成分进行滤波,首先进行正傅里叶变换,设计一个滤波器用点操作的方法加工频谱数据,然后进行反傅里叶变换。关键是求出传递函数H(u,v)。

一.理想低通滤波器

matlab代码:

clc;
close all;
clear all;
I = rgb2gray(imread('plane.jfif'));
subplot(131);imshow(I);title('原图');
J = fftshift(fft2(I));
subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
[M,N] = size(I);
H = zeros(M,N);
for u =1:M
    for v = 1:N
        if sqrt((u-M/2)^2+(v-N/2)^2)<=30
            H(u,v) = 1;
        else
            H(u,v) = 0;
       
        end;
    end;
end;
I1 = H.*J;
I1 = ifftshift(I1);
I2 = real(ifft2(I1));
subplot(133);imshow(I2,[]);title('理想低通滤波器');

二.巴特沃斯低通滤波器

clc;
close all;
clear all;
I = rgb2gray(imread('plane.jfif'));
subplot(131);imshow(I);title('原图');
J = fftshift(fft2(I));
subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
[M,N] = size(I);
H = zeros(M,N);
n1 = floor(M/2);n2 = floor(N/2);
for i =1:M
    for j = 1:N
        d = sqrt((i-n1)^2+(j-n2)^2);
        H = 1/(1+(d/30)^(2*2));
        I1(i,j)=H*J(i,j);
    end;
end;
I1 = ifftshift(I1);
I2 = real(ifft2(I1));
subplot(133);imshow(I2,[]);title('巴特沃斯低通滤波器');

三.指数低通滤波器

clc;
close all;
clear all;
I = rgb2gray(imread('plane.jfif'));
subplot(131);imshow(I);title('原图');
J = fftshift(fft2(I));
subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
[M,N] = size(I);
H = zeros(M,N);
n1 = floor(M/2);n2 = floor(N/2);
for i =1:M
    for j = 1:N
        d = sqrt((i-n1)^2+(j-n2)^2);
        o = -(d/30)^2;
        H = exp(1)^o;
        I1(i,j)=H*J(i,j);
    end;
end;
I1 = ifftshift(I1);
I2 = real(ifft2(I1));
subplot(133);imshow(I2,[]);title('指数低通滤波器');

 

四.梯形低通滤波器

clc;
close all;
clear all;
I = rgb2gray(imread('plane.jfif'));
subplot(131);imshow(I);title('原图');
J = fftshift(fft2(I));
subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
[M,N] = size(I);
H = zeros(M,N);
for u =1:M
    for v = 1:N
        if sqrt((u-M/2)^2+(v-N/2)^2)<30
            H(u,v) = 1;
        elseif 30<= sqrt((u-M/2)^2+(v-N/2)^2)<=180
            H(u,v) = (sqrt((u-M/2)^2+(v-N/2)^2)-180)/(30-180);
        else
            H(u,v)=0;
        end;
    end; 
 
end;
I1 =H.*J;
I1 = ifftshift(I1);
I2 = real(ifft2(I1));
subplot(133);imshow(I2,[]);title('梯形低通滤波器');

其中D0为截止频率,其值会影响最后图像平滑的效果,不同图像对应最佳的D0值也有所不同。

 

 

  • 10
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值