四、基于MATLAB的数字图像处理————频率域滤波(二)

一、在频率域中直接生成滤波器

1,创建用于实现频域滤波器的网格数组的M函数
要在频域内生成一个滤波器,创建一个能够计算任何一点到频率矩形中指定点的距离的M函数是基础的一步。
M函数代码如下:

function [U,V]=dftuv(M,N)
u=single(0:(M-1));
v=single(0:(N-1));
idx=find(u>M/2);
u(idx)=u(idx)-M;
idy=find(v>N/2);
v(idy)=v(idy)-N;
[V,U]=meshgrid(v,u);

dftuv函数能够得到一个网格数组,利用网格数组能够得到任何一点到频率矩形中指定点的距离。

[U,V]=dftuv(8,5);
>> DSQ=U.^2+V.^2

DSQ =

  8×5 single 矩阵

     0     1     4     4     1
     1     2     5     5     2
     4     5     8     8     5
     9    10    13    13    10
    16    17    20    20    17
     9    10    13    13    10
     4     5     8     8     5
     1     2     5     5     2

>> fftshift(DSQ)

ans =

  8×5 single 矩阵

    20    17    16    17    20
    13    10     9    10    13
     8     5     4     5     8
     5     2     1     2     5
     4     1     0     1     4
     5     2     1     2     5
     8     5     4     5     8
    13    10     9    10    13

将 DSQ的ans进行dftshift后得到的就是各点相对频域中心点的距离的平方。

2,低通频域滤波器
理想低通滤波器(ILPF)的传递函数:
在这里插入图片描述
其中D0是正数,D(u,v)是点(u,v)到滤波器中心的距离。该滤波器乘以一幅图像的傅里叶变换,显然滤波器会切断以D0为半径的圆的圆外F(u,v)分量,圆内以及圆上保持不变。但是事实上电子元件无法实现理想的低通滤波

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值