Matlab图像处理--低通滤波器的Matlab实现及透视图

低通滤波器

 

一、理想低通滤波器(ILPF)

本文主要介绍三种常见低通滤波器的实现方法及其透视图

1.1 理想低通滤波器介绍

在以原点为中心、以D 0 D_0D0​为半径的圆内,无衰减地通过所有频率,而在该圆外“切断”所有频率的二位低通滤波器,称为理想低通滤波器(ILPF);理想低通滤波器有下面的函数确定:
(1.1) H ( u , v ) = { 1 , D ( u , v ) ≤ D 0 0 , D ( u , v ) > D 0 H(u,v) =

{1,0,amp;D(u,v)≤D0amp;D(u,v)gt;D0{1,amp;D(u,v)≤D00,amp;D(u,v)gt;D0

\tag{1.1}H(u,v)={1,0,​D(u,v)≤D0​D(u,v)>D0​​(1.1)
其中,D 0 D_0D0​是一个正常数,D ( u , v ) 是 频 率 域 中 的 点 D(u,v)是频率域中的点D(u,v)是频率域中的点( u , v ) (u,v)(u,v)$与矩形中心的距离,即
(1.2) D ( u , v ) = [ ( u − P / 2 ) 2 + ( v − Q / 2 ) 2 ] 1 / 2 D(u,v) = \sqrt[1/2]{[(u - P / 2)^2 + (v - Q / 2)^2]} \tag{1.2}D(u,v)=1/2[(u−P/2)2+(v−Q/2)2]​(1.2)
其中,P PP和Q QQ分别为坐标轴u uu和v vv的最大值。

1.2 理想低通滤波器的Matlab实现

该部分代码同时包含了低通和高通滤波器,其中返回值H_L为理想低通滤波器,H_H为理想高通滤波器。

%{
Code for function of Ideal Filter
Created on Mon Aug 12 2019
@author: hjn
%}

% Parameters:
% H_L: Low-Pass Filter
% H_H: High-Pass Filter

function [H_L, H_H] = ILP(u_max, v_max, D0)

% defining range of axis
U=0:u_max;
V=0:v_max;

% calculating coordinate of center
center_u = ceil(u_max/2);
center_v = ceil(v_max/2);

% initilization
H_L=zeros(u_max, v_max);
H_H=zeros(u_max, v_max);

for u=1:u_max+1
    for v=1:v_max+1
        % distance between (u,v) and center
        dist = sqrt((U(u) - center_u)^2 + (V(v) - center_v)^2);
        % judge thread
        if(dist<=D0)
            H_L(u,v) = 1;
            H_H(u,v) = 0;
        else
            H_L(u,v) = 0;
            H_H(u,v) = 1;
        end
    end
end

figure(1);
surf(U,V,H_L)
xlabel('u')
ylabel('v')
zlabel('H(u,v)')
legend('H(u,v)')

1.3 理想低通滤波器的实现结果

运行如下代码:

[H_L_100_100_10, H_H_100_100_10] = ILP(100, 100, 10);
  • 1

结果:在这里插入图片描述

图1 理想低通滤波器的透视图

二、布特沃斯低通滤波器(BLPF)

2.1 布特沃斯低通滤波器介绍

截止频率位于距原点D 0 D_0D0​处的n nn阶布特沃斯低通滤波器的传递函数定义为
(2.1) H ( u , v ) = 1 1 + [ D ( u , v ) / D 0 ] 2 n H(u,v) = \frac{1} {1 + [D(u,v)/D_0]^{2n}} \tag{2.1}H(u,v)=1+[D(u,v)/D0​]2n1​(2.1)
其中,D ( u , v ) D(u,v)D(u,v)由式(1.2)给出。

2.2 布特沃斯低通滤波器的Matlab实现

该部分代码同时包含了低通和高通滤波器,其中返回值H_L为布特沃斯低通滤波器,H_H为布特沃斯高通滤波器。

%{
Code for function of Butterworth Filter
Created on Mon Aug 12 2019
@author: hjn
%}

% Parameters:
% H_L: Low-Pass Filter
% H_H: High-Pass Filter

function [H_L, H_H] = BLP(u_max, v_max, D0, n)

% define range of axis
U=0:u_max;
V=0:v_max;

% calculate coordinate of center
center_u = ceil(u_max/2);
center_v = ceil(v_max/2);

% initilization
H_L=zeros(u_max, v_max);
H_H=zeros(u_max, v_max);

for u=1:u_max + 1 
    for v=1:v_max + 1
        % distance between (u,v) and center
        dist = sqrt((U(u) - center_u)^2 + (V(v) - center_v)^2);
        H_L(u,v)=1 / (1 + power(dist/D0, 2*n));
        H_H(u,v)=1 / (1 + power(D0/dist, 2*n));
    end
end

figure(1);
surf(U,V,H_L)
xlabel('u')
ylabel('v')
zlabel('H(u,v)')
legend('H(u,v)')

2.3 布特沃斯低通滤波器的实现结果

运行如下代码:

[H_L_100_100_10, H_H_100_100_10] = BLP(100, 100, 10, 1);
  •  

结果:
在这里插入图片描述

图2 布特沃斯低通滤波器的透视图

三、高斯低通滤波器(GLPF)

3.1 高斯低通滤波器介绍

截止频率位于距原点D 0 D_0D0​处的高斯低通滤波器的传递函数定义为
(3.1) H ( u , v ) = e − D 2 ( u , v ) / 2 D 0 2 H(u,v) = e^{-D^2(u,v)/{2D_0^2}} \tag{3.1}H(u,v)=e−D2(u,v)/2D02​(3.1)

3.2 高斯低通滤波器的Matlab实现

%{
Code for function of Gaussion Filter
Created on Mon Aug 12 2019
@author: hjn
%}

% Parameters:
% H_L: Low-Pass Filter
% H_H: High-Pass Filter

function [H_L, H_H] = GLP(u_max, v_max, sigma)

% defining range of axis
U=0:u_max - 1;
V=0:v_max - 1;

% calculating coordinate of center
center_u = ceil(u_max/2);
center_v = ceil(v_max/2);

% initialization
H_L=zeros(u_max, v_max);
H_H=zeros(u_max, v_max);

for u=1:u_max
    for v=1:v_max
        % distence between U(u,v) and center
        dist = sqrt((U(u) - center_u)^2 + (V(v) - center_v)^2);
        H_L(u,v) = exp(-dist^2/(2*sigma^2));
        H_H(u,v) = 1 - H_L(u,v);
    end
end

figure(1);
surf(U,V,H_L)
xlabel('u')
ylabel('v')
zlabel('H(u,v)')
legend('H(u,v)')

3.3 高斯低通滤波器的实现结果

运行如下代码:

[H_L_100_100_10, H_H_100_100_10] = GLP(100, 100, 10);
  •  

结果:
在这里插入图片描述

图3 高斯低通滤波器的透视图

总结

低通滤波器可用来平滑图像,其中D 0 D_0D0​越大,即截止频率越大,图中的类似柱状物越粗,即通过的频率分量越多。

  • 10
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值