频域滤波器_频域滤波器中 怎样理解截止频率 - CSDN
精华内容
参与话题
  • 1.频域滤波的一般步骤   基本的滤波公式有如下形式: 其中F(x,y)是输入图像f(x,y)的DFT,H(u,v)是滤波函数(也成为滤波器,或者滤波传递函数),g(x,y)是滤波后的输出图像,它是由前两者乘积的IDFT得到的。   ...

    1.频域滤波的一般步骤
      基本的滤波公式有如下形式:
    在这里插入图片描述
    其中F(x,y)是输入图像f(x,y)的DFT,H(u,v)是滤波函数(也成为滤波器,或者滤波传递函数),g(x,y)是滤波后的输出图像,它是由前两者乘积的IDFT得到的。
      频域滤波的步骤可以总结为以下几点:
    ①给定一幅大小为M✖N的输入图像f(x,y),选择填充参数P、Q。一般选择P=2M和Q=2N。
    ②对f(x,y)添加必要数量的0,形成大小为P✖Q的填充后的图像fp(x,y)。
    ③用(-1)x+y乘以fp(x,y)移到其变换的中心。
    ④计算来自步骤③的图像的DFT,得到F(u,v)。
    ⑤生成一个实的、对称的滤波函数H(u,v),其大小为P✖Q,中心在(P/2,Q/2)处。用阵列相乘形成乘积G(u,v)=H(u,v)F(u,v);即G(i,k)=H(i,k)F(i,k)
    ⑥得到处理后的图像:
    在这里插入图片描述
    其中为了忽略由于计算不准确导致的寄生复分量,选择了实部,下标p指出我们处理的是填充后的阵列。
    ⑦通过gp(x,y)的左上象限提取M✖N区域,得到最终处理结果g(x,y)。
      下图很好的解释了上述步骤:
    在这里插入图片描述
    2.几种常见的滤波器
    ①理想低通滤波器(ILPF)
      在以原点为圆心、以D0为半径的圆内,无衰减地通过所有频率,而在该圆外“切断”所有频率地二维低通滤波器,称为理想低通滤波器(ILPF);它由下面的函数确定:
    在这里插入图片描述
    其中,D0是一个正常数,D(u,v)是频率域中点(u,v)与频率矩形中心的距离,即
    在这里插入图片描述
    在这里插入图片描述
    由上图(b)所示的滤波器模板,在半径为D0的圆内,所有频率无衰减地通过,而在此圆之外的所有频率则完全被衰减(滤除)。
      低通滤波器可用具有相同截止频率的函数研究其特性而加以比较。建立一组标准截止频率轨迹的一种方法是计算包含规定的总图像功率值PT的圆。该值是通过求每个点(u,v)处填充后图像的功率谱分量的和得到的,其中u=0,1,2…P-1,v=0,1…Q-1,即
    在这里插入图片描述
    其中P(u,v)是功率值,也就是复数的模(实部和虚部的平方和的开方)。如果DFT已经被中心化,那么原点位于频率矩阵中心处、半径为D0的圆将包含α%的功率,其中
    在这里插入图片描述
    则总和取处于圆之内或边界线上的(u,v)值。
      举个例子,使用一个ILPF平滑图像:
    在这里插入图片描述
      由上图的滤波效果可以看到,除非模糊的目标是消除图像中的所有细节,理想的低通滤波器才能起到作用。在(b)的结果看来,图像中大多数尖锐的细节信息包含在被滤波器滤除的13%功率内。随着滤波器半径的增大,滤除的功率越来越少,模糊也逐渐减弱。可以注意到图像(c)~(e)都有振铃现象,随着被滤除的高频内容的减少,图像的纹理也变得越来越清晰。振铃现象是理想的低通滤波器的一种特性。图像处理中,对一幅图像进行滤波处理,若选用的频域滤波器具有陡峭的变化,则会使滤波图像产生“振铃”,所谓“振铃”,就是指输出图像的灰度剧烈变化处产生的震荡,就好像钟被敲击后产生的空气震荡。

    ②巴特沃斯低通滤波器(BLPF)
      截止频率位于距原点D0处的n阶巴特沃斯低通滤波器(BLPF)的传递函数定义为
    在这里插入图片描述
    其中
    在这里插入图片描述
    下图显示了该BLPF函数的透视图、图像显示和径向剖面图
    在这里插入图片描述
    与ILPF不同的是,BLPF传递函数并没有通过频率和滤除频率之间给出明显截止的尖锐的不连续性。对于具有平滑传递函数的滤波器,可以在这样一点上定义截止频率,即使得H(u,v)下降为其最大值得某个百分比的点。在BLPF的传递函数中,截止频率点是当D(u,v)=D0时的点【即H(u,v)从最大值1下降为50%】
    在这里插入图片描述
    使用2阶BLPF处理后的图像如上图所示,与ILPF对比可以注意到,此处模糊的平滑过渡是截止频率增大的函数。此外,使用这种特殊BLPF处理过的任何图像中都没有可见的振铃现象,这要归因于这种滤波器在高频和低频之间的平滑过渡。在空间域的一阶巴特沃斯滤波器没用振铃现象,在二阶滤波器中,振铃现象很难察觉,但是更高阶数的滤波器中振铃现象会很明显。

    ③高斯低通滤波器(GLPF)
      高斯低通滤波器的传递函数有如下形式:
    在这里插入图片描述
    和前面一样D(u,v)是距频率矩形中心的距离,通过令σ=D0,可以得到
    在这里插入图片描述
    其中,D0是截止频率。当D(u,v)时,GLPF下降到其最大值的0.607处。
    下图展示了GLPF函数的透视图、图像显示和径向剖面图:
    在这里插入图片描述
    下图为使用GLPF处理后的图像,与BLPF相比,相同的截止频率,GLPF平滑效果要稍微差一点,但是可以确切的结论是在GLPF中没有振铃.
    在这里插入图片描述
    ④理想高通滤波器(IHPF)
      一个二维理想高通滤波器定义为
    在这里插入图片描述
    其中,D0是截止频率.前面的低通滤波器相反,高通滤波器把半径为D0的圆内所有频率置零,而毫无衰减地通过圆外的所有频率.
    下图展示的是三种高通滤波器的透视图,图像表示和剖面图:
    在这里插入图片描述
    使用IHPF处理后的图像如下所示,可以看出图(a)中的振铃现象相当严重,以至于失真,当加大截止频率后才更像一幅高通滤波后的图片,图©中边缘更清晰,失真更小,而且较小的物体已被正确滤除.
    在这里插入图片描述
    ⑤巴特沃斯高通滤波器(BHPF)
      截止频率为D0的n阶巴特沃斯高通滤波器定义为:
    在这里插入图片描述
    很明显,巴特沃斯高通滤波器比理想高通滤波器更加平滑,边缘失真更小,截止频率越大,使用BHPF得到的结果越平滑,下图为BHPF处理的图像:
    在这里插入图片描述⑥高斯高通滤波器(GHPF)
      截止频率在D0处的高斯滤波器的传递函数由下式给出:
    在这里插入图片描述
    GHPF对比前两种方法有更好的平滑效果,即使是对微小的物体和细线条使用高斯滤波器滤波,结果也是比较清晰的.下图为GHPF处理的图像:
    在这里插入图片描述

    参考资料:<<数字图像处理>>第三版 冈萨雷斯

    展开全文
  • 频域低通滤波器(MATLAB 含代码)

    万次阅读 2016-10-27 10:40:44
    因此图像平滑可以通过衰减图像频谱中的高频部分来实现,这就建立了空间域图像平滑和频域低通滤波之间的对应关系。 理论基础 最容易想到的衰减高频成分方法是在一个称为‘截止频率’的位置截断所有的高频成分,将...

    在频谱中低频主要对应图像在平滑区域的总体灰度级分布,而高频对应图像的细节部分,如边缘和噪声。因此图像平滑可以通过衰减图像频谱中的高频部分来实现,这就建立了空间域图像平滑和频域低通滤波之间的对应关系。

    理论基础

    最容易想到的衰减高频成分方法是在一个称为‘截止频率’的位置截断所有的高频成分,将图像频谱中所有高于这一截止的频谱 成分设为0,低于截止频率的成分设为保持不变。能够达到这种效果的滤波器我们称之为理想低通滤波器。如果图像的宽度为 M,高度为N,那么理想的低通频域滤波器可以形式化的描述为

    其中D0表示理想低通滤波器的截止频率,滤波器的频率域原点在频谱图像的中心处,在以截止频率为半径的圆形区域 之内的滤镜元素值全部为1,而该圆之外的滤镜元素值全部为0.理想低通滤波器的频率特性在截止频率处十分陡峭,无法用硬件实现,这也是我们称之为理想的原因,但其软件编程的模拟实现较为简单。

    理想低通滤波器可以在一定程度上去除图像噪声,但由此带来的图像边缘和细节的模糊效应也比较明显,其滤波之后的处理效果比较类似于平均模板的平均平滑,实际上,理想低通滤波器是一个与频谱图像同样尺寸的二维矩阵,通过将矩阵中对应较高频率的部分设为0,较低频率的部分设为1,可在与频谱图像相乘后有效去除频谱的高频部分,其中0和1的交界处即对应滤波器的截止频率。

    我们用imidealflpf 函数可以得到截止频率为freq的理想低通滤波器。代码如下

    function out=imidealflpf(I, freq)
    %imidealflpf 函数                       构造理想的频域低通滤波其
    %I参数                                  输入的灰度图像
    %freq                                   低通滤波器的截止频率
    %返回值           out指定的理想低通滤波
    [M,N]=size(I);
    out=ones(M,N);
    for i=1:M
        for j=1:N
            if (sqrt(((i-M/2)^2+(j-N/2)^2))>freq)
                out(i,j)=0;
            end
        end
    end
    

    用imfreqfilt 函数表示频率滤波的基本步骤代码如下:

    function out=imfreqfilt(I,ff)
    % imfreqfilt函数                对灰度图像进行频域滤波
    %参数I                    输入的空域图像
    %参数ff                       应用的与原图等大的频域滤镜
    if (ndims(I)==3)&&(size(I,3)==3) %RGB图像
        I=rgn2gray(I);
    end
    if (size(I)~=size(ff))
        msg1=sprintf('%s: 滤镜与原图像不等大,检查输入',mfilename);
        msg2=sprintf('%s: 滤波操作已经取消',mfilename);
        eid=sprintf('Images:%s: ImagesSizeNotEqual',mfilename);
        error(eid,'%s',msg1,msg2);
    end
    %快速傅里叶变换
    f=fft2(double(I));
    %移动原点
    s=fftshift(f);
    %应用滤镜及反变换
    out=s.*ff;%对应元素相乘实现频域滤波
    out=ifftshift(out);
    out=ifft2(out);
    %求模值
    out=abs(out);
    %归一化以便显示
    out=out/max(out(:));


     

    用ditonglvbo 函数来进行图像处理代码

    I=imread('lena.bmp');
    I=rgb2gray(I);
    ff=imidealflpf(I,20);%生成滤镜
    out=imfreqfilt(I,ff);%应用滤镜
    figure(1);
    subplot(2,2,1);
    imshow(I);
    title('source');
    %计算FFT并显示
    temp=fft2(double(I));
    temp=fftshift(temp);
    temp=log(1+abs(temp));
    figure(2);
    subplot(2,2,1);
    imshow(temp,[]);
    title('source1');
    figure(1);
    subplot(2,2,2);
    imshow(out);
    title('Ideal LPF ,freq=20');
    %计算FFT并显示
    temp=fft2(out);
    temp=fftshift(temp);
    temp=log(1+abs(temp));
    figure(2);
    subplot(2,2,2);
    imshow(temp,[]);
    title('Ideal LPF ,freq=20');
    
    ff=imidealflpf(I,40);%生成滤镜
    out=imfreqfilt(I,ff);%应用滤镜
    figure(1);
    subplot(2,2,3);
    imshow(out);
    title('Tdeal LPF,freq=40');
    %计算FFT并显示
    temp=fft2(out);
    temp=fftshift(temp);
    temp=log(1+abs(temp));
    figure(2);
    subplot(2,2,3);
    imshow(temp,[]);
    title('Ideal LPF ,freq=40');
    
    ff=imidealflpf(I,60);%生成滤镜
    out=imfreqfilt(I,ff);%应用滤镜
    figure(1);
    subplot(2,2,4);
    imshow(out);
    title('Tdeal LPF,freq=60');
    %计算FFT并显示
    temp=fft2(out);
    temp=fftshift(temp);
    temp=log(1+abs(temp));
    figure(2);
    subplot(2,2,4);
    imshow(temp,[]);
    title('Ideal LPF ,freq=60');
    


     

    效果如下:


    function out=imfreqfilt(I,ff)
    % imfreqfilt函数                对灰度图像进行频域滤波
    %参数I                    输入的空域图像
    %参数ff                       应用的与原图等大的频域滤镜
    if (ndims(I)==3)&&(size(I,3)==3) %RGB图像
        I=rgn2gray(I);
    end
    if (size(I)~=size(ff))
        msg1=sprintf('%s: 滤镜与原图像不等大,检查输入',mfilename);
        msg2=sprintf('%s: 滤波操作已经取消',mfilename);
        eid=sprintf('Images:%s: ImagesSizeNotEqual',mfilename);
        error(eid,'%s',msg1,msg2);
    end
    %快速傅里叶变换
    f=fft2(double(I));
    %移动原点
    s=fftshift(f);
    %应用滤镜及反变换
    out=s.*ff;%对应元素相乘实现频域滤波
    out=ifftshift(out);
    out=ifft2(out);
    %求模值
    out=abs(out);
    %归一化以便显示
    out=out/max(out(:));


     

     

    展开全文
  • 频域滤波

    千次阅读 2019-04-06 10:33:32
    频域的滤波分主要分为低通和高通滤波器. 在频域上低频部分表示轮廓,高频部分表示细节.因此可以使用低通和高通滤波分本别对图像进行平滑和锐化处理. 1.在频率上滤波的基本步骤分为: 对图像进行扩充,填0,并将图像...

    基本概念:

    图像的平滑除了在空间域中进行外,也可以在频率域中进行。频域的滤波分主要分为低通和高通滤波器.

    在频域上低频部分表示轮廓,高频部分表示细节.因此可以使用低通和高通滤波分本别对图像进行平滑和锐化处理.

    1.在频率上滤波的基本步骤分为:

    • 对图像进行扩充,填0,并将图像中心化.

     对离散图像进行离散傅里叶变换,图像在频域上将呈现周期无限扩展.空域上的离散函数对应频域上的周期函数.针对显示和滤波,在区间上显示一个完整的周期会更加方便,因此需要将频率左移1/2周期.而时域的相移对应频移的平移.因此在时域上x乘上虚指e−j2πux/M.扩展到二维平面上,即x,y分别成上e−j2πu0x/M,e−j2πv0x/M .其中(u0,v0) = (M/2, N/2).根据欧拉公式,将指数转化为三角函数,可得下列公式:

    • 对图像进行DFT变换,得到F(u,v).需要注意的是,必须添加虚部.
    • 生成一个实的,对称的滤波函数H(u,v).滤波器大小和扩充后的图像大小保持一致.并且中心在图像中心.并阵列相乘,进行滤波.
    • 对图像进行IDFT反变换.
    • 去中心化.再次乘上−1(x+y).
    • 截取图像.

    低通滤波器

    1.理想低通滤波器

    其中,D0为截至频率,D(u,v)为频域中一点(u,v)到频域矩形中心点的距离.

    由于理想滤波器只存在于理论中,矩形波的傅立叶反变换为sinc函数.sinc函数在时域上是无限延伸的.因此将产生振铃现象.

    2.布特沃斯低通滤波器

    布特沃斯滤波器对于截至频率的过度相对于理想滤波器更加平滑,相对与高斯滤波器更加陡峭.是理想滤波器和高斯滤波器的折中.

    3.高斯低通滤波器

    高通滤波器

     

     

     

     

     

     

    展开全文
  • 频域滤波(1)--基础与低通滤波器

    千次阅读 2018-10-17 15:08:22
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&a
                              
                   

           之前的博文主要介绍了空间域内的滤波器,本文主要从频域的角度进行分析。主要使用傅里叶变换,将空间域的图像转换到频域内,在频域内进行数字图像处理。这部分的内容及其重要,频域内的处理可以解决空间域内无法完成的图像增强。本文首先从数学角度,对图像的频域内的性质进行分析,然后在着重介绍滤波器在频域内的性质。

            1.傅里叶变换与频域

            在之前的文中,我们已经进行过一些基本的图像处理。比如,使用低通滤波可以将图像模糊,也有些许降噪的作用。这些都是在空间域内进行的滤波处理,这个处理主要是依靠卷积来进行计算的。首先,从连续的一维卷积入手,如下所示。


           将上式进行傅里叶变换,可以得到如下结果。


            从这个式子,我们可以得到一个重要的结论。也就是,函数卷积的傅里叶变换所得到的结果,是函数的傅里叶变换的乘积。再将其总结得简单易懂一些,有如下结论。


            在将其扩展到二维的形况下,假设尺寸为MxN的图像,如下关系是成立的。


           其实到这,基本的原理就明了的。我们所看到的图像,均为空间域内的表现形式,我们无法辨识出频域内的图像。要进行频域内的滤波器处理,首先就需要进行傅里叶变换,然后直接进行滤波处理,最后再用反傅里叶变换倒回到空间域内。

           到此,已经可以开始空间域内的滤波处理了。但是,还有一点需要注意的地方。使用某个一维信号来举例子,一维信号的傅里叶变换是以2π为周期的函数。所以,我们常常使用的范围[-π,π]来表示这个信号的傅里叶变换,如下所示。


            这样做的好处是,靠近0的成分就是低频,靠近-π与π的成分就表示高频。而对于图像而言,在Matlab中,我们使用fft2()这个函数来求取图像的傅里叶变换。

    g = fft2(f);   
            上面这个代码求取的,其实是范围[0,π]内的傅里叶变换。为了方便理解,下图画出了本行代码所求取的图像的傅里叶变换的范围(右)和与其等效的一维傅里叶变换的范围(左)


           很显然,这并不是希望的范围,下面这个代码可以求取[0,2π]内的傅里叶变换。

    P = 2*M;
    Q = 2*N;
    F = fft2(f,P,Q);
    
           下图画出了本行代码所求取的图像的傅里叶变换的范围(右)和与其等效的一维傅里叶变换的范围(左)。所得到的图像F(u,v)的尺寸为PxQ。


             我们需要对其移动一下,如下图所示,我们需要的是粉色范围的区域。


    下面,从数学上分析一下,如何获得这个部分的频谱。对于傅里叶变换,有如下性质。


    这个特性称为平移特性,粉色部分的频谱,将带入上式,我们可以得到如下式子。


    为次,我们已经得到了粉色范围的频谱。越靠近傅里叶频谱图像中间的成分,代表了低频成分。其Matlab代码如下所示。

    1. [M,N] = size(f);
    2. P = 2*M;
    3. Q = 2*N;
    4. fc = zeros(M,N);
    5. for x = 1:1:M
    6.     for y = 1:1:N
    7.         fc(x,y) = f(x,y) * (-1)^(x+y);
    8.     end
    9. end
    10. F = fft2(fc,P,Q);

            代码所得到的结果,如下图所示。


            接下来,我们总结一下频域滤波的步骤:

            ①:先将图像做频域内的水平移动,然后求原图像f(x,y)的DFT,得到其图像的傅里叶谱F(u,v)。


            ②:与频域滤波器做乘积,

            ③:求取G(u,v)的IDFT,然后再将图像做频域内的水平移动(移动回去),其结果可能存在寄生的虚数,此时忽略即可。


            ④:这里使用ifft2函数进行IDFT变换,得到的图像的尺寸为PxQ。切取左上角的MxN的图像,就能得到结果了。

            2.低通滤波器

            2.1理想的低通滤波器


           其中,D0表示通带的半径。D(u,v)的计算方式也就是两点间的距离,很简单就能得到。

           使用低通滤波器所得到的结果如下所示。低通滤波器滤除了高频成分,所以使得图像模糊。由于理想低通滤波器的过度特性过于急峻,所以会产生了振铃现象。


             

            2.2巴特沃斯低通滤波器

           同样的,D0表示通带的半径,n表示的是巴特沃斯滤波器的次数。随着次数的增加,振铃现象会越来越明显。

       


           2.3高斯低通滤波器


           D0表示通带的半径。高斯滤波器的过度特性非常平坦,因此是不会产生振铃现象的。

           3.实现代码

    1. close all;
    2. clear all;
    3. %% ---------Ideal Lowpass Filters (Fre. Domain)------------
    4. f = imread('characters_test_pattern.tif');
    5. f = mat2gray(f,[0 255]);
    6. [M,N] = size(f);
    7. P = 2*M;
    8. Q = 2*N;
    9. fc = zeros(M,N);
    10. for x = 1:1:M
    11.     for y = 1:1:N
    12.         fc(x,y) = f(x,y) * (-1)^(x+y);
    13.     end
    14. end
    15. F = fft2(fc,P,Q);
    16. H_1 = zeros(P,Q);
    17. H_2 = zeros(P,Q);
    18. for x = (-P/2):1:(P/2)-1
    19.      for y = (-Q/2):1:(Q/2)-1
    20.         D = (x^2 + y^2)^(0.5);
    21.         if(D <= 60)  H_1(x+(P/2)+1,y+(Q/2)+1) = 1; end   
    22.         if(D <= 160)  H_2(x+(P/2)+1,y+(Q/2)+1) = 1; end
    23.      end
    24. end
    25. G_1 = H_1 .* F;
    26. G_2 = H_2 .* F;
    27. g_1 = real(ifft2(G_1));
    28. g_1 = g_1(1:1:M,1:1:N);
    29. g_2 = real(ifft2(G_2));
    30. g_2 = g_2(1:1:M,1:1:N);        
    31. for x = 1:1:M
    32.     for y = 1:1:N
    33.         g_1(x,y) = g_1(x,y) * (-1)^(x+y);
    34.         g_2(x,y) = g_2(x,y) * (-1)^(x+y);
    35.     end
    36. end
    37. %% -----show-------
    38. figure();
    39. subplot(1,2,1);
    40. imshow(f,[0 1]);
    41. xlabel('a).Original Image');
    42. subplot(1,2,2);
    43. imshow(log(1 + abs(F)),[ ]);
    44. xlabel('b).Fourier spectrum of a');
    45. figure();
    46. subplot(1,2,1);
    47. imshow(H_1,[0 1]);
    48. xlabel('c).Ideal Lowpass filter(D=60)');
    49. subplot(1,2,2);
    50. h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q));
    51. set(h,'EdgeColor','k');
    52. axis([0 P 0 Q 0 1]);
    53. xlabel('u');ylabel('v');
    54. zlabel('|H(u,v)|');
    55. figure();
    56. subplot(1,2,1);
    57. imshow(log(1 + abs(G_1)),[ ]);
    58. xlabel('d).Result of filtering using c');
    59. subplot(1,2,2);
    60. imshow(g_1,[0 1]);
    61. xlabel('e).Result image');
    62. figure();
    63. subplot(1,2,1);
    64. imshow(H_2,[0 1]);
    65. xlabel('f).Ideal Lowpass filter(D=160)');
    66. subplot(1,2,2);
    67. h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q));
    68. set(h,'EdgeColor','k');
    69. axis([0 P 0 Q 0 1]);
    70. xlabel('u');ylabel('v');
    71. zlabel('|H(u,v)|');
    72. figure();
    73. subplot(1,2,1);
    74. imshow(log(1 + abs(G_2)),[ ]);
    75. xlabel('g).Result of filtering using e');
    76. subplot(1,2,2);
    77. imshow(g_2,[0 1]);
    78. xlabel('h).Result image');
    79. close all;
    80. clear all;
    81. %% ---------Butterworth Lowpass Filters (Fre. Domain)------------
    82. f = imread('characters_test_pattern.tif');
    83. f = mat2gray(f,[0 255]);
    84. [M,N] = size(f);
    85. P = 2*M;
    86. Q = 2*N;
    87. fc = zeros(M,N);
    88. for x = 1:1:M
    89.     for y = 1:1:N
    90.         fc(x,y) = f(x,y) * (-1)^(x+y);
    91.     end
    92. end
    93. F = fft2(fc,P,Q);
    94. H_1 = zeros(P,Q);
    95. H_2 = zeros(P,Q);
    96. for x = (-P/2):1:(P/2)-1
    97.      for y = (-Q/2):1:(Q/2)-1
    98.         D = (x^2 + y^2)^(0.5);
    99.         D_0 = 100;
    100.         H_1(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^2);  
    101.         H_2(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^6);
    102.      end
    103. end
    104. G_1 = H_1 .* F;
    105. G_2 = H_2 .* F;
    106. g_1 = real(ifft2(G_1));
    107. g_1 = g_1(1:1:M,1:1:N);
    108. g_2 = real(ifft2(G_2));
    109. g_2 = g_2(1:1:M,1:1:N);        
    110. for x = 1:1:M
    111.     for y = 1:1:N
    112.         g_1(x,y) = g_1(x,y) * (-1)^(x+y);
    113.         g_2(x,y) = g_2(x,y) * (-1)^(x+y);
    114.     end
    115. end
    116. %% -----show-------
    117. figure();
    118. subplot(1,2,1);
    119. imshow(f,[0 1]);
    120. xlabel('a).Original Image');
    121. subplot(1,2,2);
    122. imshow(log(1 + abs(F)),[ ]);
    123. xlabel('b).Fourier spectrum of a');
    124. figure();
    125. subplot(1,2,1);
    126. imshow(H_1,[0 1]);
    127. xlabel('c)Butterworth Lowpass (D_{0}=100,n=1)');
    128. subplot(1,2,2);
    129. h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q));
    130. set(h,'EdgeColor','k');
    131. axis([0 P 0 Q 0 1]);
    132. xlabel('u');ylabel('v');
    133. zlabel('|H(u,v)|');
    134. figure();
    135. subplot(1,2,1);
    136. imshow(log(1 + abs(G_1)),[ ]);
    137. xlabel('d).Result of filtering using c');
    138. subplot(1,2,2);
    139. imshow(g_1,[0 1]);
    140. xlabel('e).Result image');
    141. figure();
    142. subplot(1,2,1);
    143. imshow(H_2,[0 1]);
    144. xlabel('f).Butterworth Lowpass (D_{0}=100,n=3)');
    145. subplot(1,2,2);
    146. h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q));
    147. set(h,'EdgeColor','k');
    148. axis([0 P 0 Q 0 1]);
    149. xlabel('u');ylabel('v');
    150. zlabel('|H(u,v)|');
    151. figure();
    152. subplot(1,2,1);
    153. imshow(log(1 + abs(G_2)),[ ]);
    154. xlabel('g).Result of filtering using e');
    155. subplot(1,2,2);
    156. imshow(g_2,[0 1]);
    157. xlabel('h).Result image');
    158. close all;
    159. clear all;
    160. clc;
    161. %% ---------Gaussian Lowpass Filters (Fre. Domain)------------
    162. f = imread('characters_test_pattern.tif');
    163. f = mat2gray(f,[0 255]);
    164. [M,N] = size(f);
    165. P = 2*M;
    166. Q = 2*N;
    167. fc = zeros(M,N);
    168. for x = 1:1:M
    169.     for y = 1:1:N
    170.         fc(x,y) = f(x,y) * (-1)^(x+y);
    171.     end
    172. end
    173. F = fft2(fc,P,Q);
    174. H_1 = zeros(P,Q);
    175. H_2 = zeros(P,Q);
    176. for x = (-P/2):1:(P/2)-1
    177.      for y = (-Q/2):1:(Q/2)-1
    178.         D = (x^2 + y^2)^(0.5);
    179.         D_0 = 60;
    180.         H_1(x+(P/2)+1,y+(Q/2)+1) = exp(-(D*D)/(2*D_0*D_0));  
    181.         D_0 = 160;
    182.         H_2(x+(P/2)+1,y+(Q/2)+1) = exp(-(D*D)/(2*D_0*D_0));
    183.      end
    184. end
    185. G_1 = H_1 .* F;
    186. G_2 = H_2 .* F;
    187. g_1 = real(ifft2(G_1));
    188. g_1 = g_1(1:1:M,1:1:N);
    189. g_2 = real(ifft2(G_2));
    190. g_2 = g_2(1:1:M,1:1:N);        
    191. for x = 1:1:M
    192.     for y = 1:1:N
    193.         g_1(x,y) = g_1(x,y) * (-1)^(x+y);
    194.         g_2(x,y) = g_2(x,y) * (-1)^(x+y);
    195.     end
    196. end
    197. %% -----show-------
    198. close all;
    199. figure();
    200. subplot(1,2,1);
    201. imshow(f,[0 1]);
    202. xlabel('a).Original Image');
    203. subplot(1,2,2);
    204. imshow(log(1 + abs(F)),[ ]);
    205. xlabel('b).Fourier spectrum of a');
    206. figure();
    207. subplot(1,2,1);
    208. imshow(H_1,[0 1]);
    209. xlabel('c)Gaussian Lowpass (D_{0}=60)');
    210. subplot(1,2,2);
    211. h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q));
    212. set(h,'EdgeColor','k');
    213. axis([0 P 0 Q 0 1]);
    214. xlabel('u');ylabel('v');
    215. zlabel('|H(u,v)|');
    216. figure();
    217. subplot(1,2,1);
    218. imshow(log(1 + abs(G_1)),[ ]);
    219. xlabel('d).Result of filtering using c');
    220. subplot(1,2,2);
    221. imshow(g_1,[0 1]);
    222. xlabel('e).Result image');
    223. figure();
    224. subplot(1,2,1);
    225. imshow(H_2,[0 1]);
    226. xlabel('f).Gaussian Lowpass (D_{0}=160)');
    227. subplot(1,2,2);
    228. h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q));
    229. set(h,'EdgeColor','k');
    230. axis([0 P 0 Q 0 1]);
    231. xlabel('u');ylabel('v');
    232. zlabel('|H(u,v)|');
    233. figure();
    234. subplot(1,2,1);
    235. imshow(log(1 + abs(G_2)),[ ]);
    236. xlabel('g).Result of filtering using e');
    237. subplot(1,2,2);
    238. imshow(g_2,[0 1]);
    239. xlabel('h).Result image');

          原文发于博客:http://blog.csdn.net/thnh169/ 

               
                   
    展开全文
  • 图像频域滤波

    千次阅读 2018-04-10 22:20:24
    1.图像频域滤波的基本概念 空间域和频域滤波的基础都是卷积定理。该定理可以写为 和 其中,符号*表示两个函数的卷积,双箭头两边的表达式组成了傅里叶变换对。第一个表达式表明两个空间函数的卷积可以通过计算两...
  • 数字图像处理频域滤波器
  • 数字图像处理之频域滤波

    万次阅读 2018-07-10 18:02:23
    前段时间看了很多的概念和知识,发现因为是走马观花的过了一遍,所以看得稀里糊涂的,然后许多地方混淆了概念,特别是关于图像频率域的部分的理解(包括图像频率域滤波之类的),所以下面总结一下这段时间重新看...
  • 本文将对图像频域滤波的信号与系统基本理论做一简要梳理,作为上一篇博文...包括基本信号维度与形式、复指数信号及其周期性、LSI系统、卷积定理、傅里叶变换与图像频域滤波原理,以及如何构造频域滤波器等内容和源码。
  • [数字图像处理]频域滤波(1)--基础与低通滤波器

    万次阅读 多人点赞 2013-12-08 12:44:16
    之前的博文主要介绍了空间域内的滤波器,本文主要从频域的角度进行分析。主要使用傅里叶变换,将空间域的图像转换到频域内,在频域内进行数字图像处理。这部分的内容及其重要,频域内的处理可以解决空间域内无法完成...
  • 滤波器频域理解

    千次阅读 2011-08-01 21:12:40
    滤波器频域理解    初学数字滤波器的时候,从频域进行理解能够比较简单地理解滤波器的概念,而且在信号处理的应用中,滤波器更多的也是用频域的一些特性来描述。  如果可以做一个类比的话,数字滤波器可以...
  • 图像频域滤波处理

    万次阅读 2015-04-23 21:32:54
    编程实现图像的频域滤波处理。 低通滤波处理,比较理想滤波器和实际滤波器的处理效果。 高通滤波处理,比较理想滤波器和实际滤波器的处理效果。
  • 时域滤波和频域滤波

    万次阅读 2018-09-06 15:48:27
    时域滤波就是通过FIR或者IIR滤波,频域滤波就是先FFT去掉不想要的成分在IFFT,一直觉得频域滤波就像是一个理想滤波器一样?对于一些离线信号的处理或者对于资源没有要求的数据处理是不是就考虑频域滤波就好了?希望...
  • 空域滤波和频域滤波的比较

    千次阅读 2019-05-31 17:43:52
    通过比较以上空域、频域低通滤波器对同一图片的滤波效果可知,使用空间域滤波和频域滤波对存在图像噪声有一定的减弱作用和对边缘的检测效果。 而空域滤波和频域滤波之间有存在着各自的特点,从空域和频域低通滤波器...
  • 频域滤波器 频域平滑滤波器 理想低通滤波器 巴特沃斯低通滤波器 高斯低通滤波器 频域锐化滤波器 理想高通滤波器 巴特沃斯高通滤波器 高斯高通滤波器 频域拉普拉斯算子 高频提升滤波 同态滤波器 低通滤波器通过过滤掉...
  • 频域和空域滤波的比较

    万次阅读 2019-04-09 09:34:12
    一,空域滤波器 空域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到...
  • 我有一个关于高斯低通滤波器的问题, 在许多的博客上(同样的情况在matlab的fspecial函数中),产生空间域滤波器 使用的公式都是A*exp(-u/(2*sigma^2)),之后再进行了归一化。但是这个公式不是高斯函数在频域域中的...
  • 频域自适应滤波器的理解

    千次阅读 2017-12-05 19:35:23
  • 前言 仍然是西蒙.赫金的《自适应滤波器原理》第四版,距离上次看这本书已经过去... 1)何为维纳滤波器(Wiener Filter);  2)Wiener滤波器的推导;  3)应用实例;  4)Wiener变体; 内容为自己的学习...
  • 频域滤波就是将信号先做傅里叶变换再与滤波器频域响应相乘,最后再做傅里叶反变换得到 低通滤波器 让我们先来看看理想低通滤波器,理想低通滤波器的频率响应是一个中间是1,周围是0的正方形或圆形,而在时域上是...
  • 空域滤波基础

    千次阅读 2015-05-08 16:46:44
    滤波的概念其实是频域概念,即对信号频率进行处理,高于或低于截止频率的将被干掉,或者带通带限,就有了高通滤波器,低通滤波器。低通滤波器的效果是模糊(平滑)衣服图像。  频域的相乘对应于时域的卷积,于是,...
1 2 3 4 5 ... 20
收藏数 8,468
精华内容 3,387
关键字:

频域滤波器