频率域图像处理_图像处理频率域 - CSDN
  • (三)基于MATLAB的数字图像处理————频率域滤波 一、二维离散傅里叶变换 令f(x,y)表示一幅大小为M*N像素的图像,其中x=0,1,2,…,M-1,y=0,1,2,…N-1。 由**F(u,v)*表示的二维离散傅里叶变换(DFT)为: 式...

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

    一、二维离散傅里叶变换
    令f(x,y)表示一幅大小为M*N像素的图像,其中x=0,1,2,…,M-1,y=0,1,2,…N-1
    由**F(u,v)*表示的二维离散傅里叶变换(DFT)为:
    在这里插入图片描述
    式中,u=0,1,2…,M-1,v=0,1,2,…,N-1。显然,F也是大小为MN的矩形区域,通常称为频率矩形。
    离散傅里叶反变换(IDFT)的形式为:
    在这里插入图片描述
    式中,x=0,1,2,…,M-1
    y=0,1,2,…,N-1
    。由 F(u,v) 可以得到 f(x,y)
    对于 f(x,y) 为实函数,他的 DFT 变换具有周期性:
    在这里插入图片描述
    他的 IDFT 也具有周期性:
    在这里插入图片描述
    R(u,v)I(u,v) 分别表示 F(u,v) 的实部和虚部,则傅里叶谱定义为
    在这里插入图片描述
    变换的相角定义为
    在这里插入图片描述
    F(u,v) 还能表示为:
    在这里插入图片描述
    二、观察DFT的相关函数
    在MATLAB中,一个图像数组的DFT可以用函数 fft2 得到

    F=fft2(f)
    

    若需要进行零填充,得到大小为P*Q的结果则有语法:

    F=fft2(f,P,Q)
    
    S=abs(F)           %得到F的傅里叶谱
    Fc=fftshift(F)     %将变换的原点移动到频率矩形的中心
    F=ifftshift(Fc)    %将居中的结果反转
    phi=angle(F)       %得到DFT的相角
    phi=atan2(imag(F),real(F))      %同样得到DFT的相角
    F=S.*exp(i*phi)    %由 给出的傅里叶谱和相角得到DFT
    
    

    因为 fft2 把输入图像毫无缩放地变成了double类,但它值的范围仍然是 [0 255] 这样在进行图像显示时就会出错,我们定义 tofloat 函数将输入图像转化为范围为 [0 1] 内的浮点数,然后在过程的末尾用 tofloatrevertclass 特性将结果转换成与初始图像相同的类。代码如下:

    function [out,revertclass]=tofloat(in)
    identity=@(x) x;
    tosingle=@im2single;
    
    table={'uint8',tosingle,@im2uint8
        'uint16',tosingle,@im2uint16
        'int16',tosingle,@im2int16
        'logical',tosingle,@logical
        'double',identity,identity
        'single',identity,identity};
    classindex=find(strcmp(class(in),table(:,1)));
    if isempty(classindex)
        error('unsupported input image class.');
    end
    out=table{classindex,2}(in);
    revertclass=table{classindex,3};
    

    三、频率域滤波
    1,基本原理
    空间域滤波和频率域滤波的基础都是卷积,卷积定理表述为:空间域乘积的DFT为频域卷积;空间域卷积的DFT为频域内的乘积。
    在进行滤波处理时我们经常用到的是后者:
    在这里插入图片描述
    H(u,v) 为滤波器传递函数,频域滤波的思想就是选择一个滤波器传递函数去对原图像的DFT进行处理(相乘),将结果再IDFT,得到的即为滤波之后的结果。
    为了进行DFT运算,构造一个将大小为AD的f(x,y)和CD的h(x,y)构造成大小均为P*Q的扩展函数,要求
    在这里插入图片描述

    在这里插入图片描述
    实现的函数代码:

    function PQ=paddedsize(AB,CD,PARAM)
    if nargin == 1
        PQ=2*AB;
    elseif nargin == 2 &&~ischar(CD) %CD为字符串返回真
        PQ=AB+CO-1;
        PQ=2*ceil(PQ/2);  %ceil(x)返回大于等于x的最小整数
    elseif nargin==2
        m=max(AB);
        p=2^nextpow2(2*m); %nextpow2(n)返回大于或等于n的绝对值的2的最小整数次幂
        PQ=[P,P];
    elseif (nargin==3) && strcmpi(PARAM,'pwr2')
        m=max([AB CD]);
        P=2^nextpow2(2*m);
        PQ=[P,P];
    else
        error('wrong number of inputs.')
    end
    

    2,基本步骤
    a,使用tofloat函数把输入图像转换为浮点图像

    [f,revertclass]=tolfloat(f);
    

    b,使用函数paddedzsize获得填充参数

    PQ=paddedzsize;
    

    c,得到的有填充图像的傅里叶变换

    F=fft2(f,PQ(1),PQ(2));
    

    d,生成一个大小为PQ(1)*PQ(2)的滤波器函数。(如果滤波器函数是居中的,则在使用滤波器之前要令H=ifftshift(H))。

    e,用滤波器乘以该变换

    G=H.*F;
    

    f,获得G的IFFT:

    g=ifft2(G);
    

    g,将左上部的矩形修剪为原始大小:

    g=g(1:size(f,1),1:size(f,2));
    

    h,需要时,将滤波后的图像转换成原始输入图像的类:

    g=revertclass(g);
    

    3,用于频域滤波的M函数
    假定滤波器函数的大小已被适当的调整,这时,我们将滤波后的图像转换成与输入想同的类,或者我们需要处理浮点型结果。定义一个M函数:

    function g=dftfilt(f,H,classout)
    
    [f,revertclass]=tofloat(f);
    F=fft2(f,size(H,1),size(H,2));
    g=ifft2(H.*F);
    g=g(1:size(f,1),1:size(f,2));
    if nargin==2||strcmp(classout,'original')
        g=revertclass(g);
    elseif strcmp(classout,'fltpoint')
        return
    else
        error('undefined class for the output image')
    end
    

    4,从空间滤波器获得频率域滤波器
    图像处理函数 freqz2可以实现从空间滤波器获得频率域滤波器的转换。

    H=freqz2(h,R,C)
    

    其中,h是一个二维空间滤波器,H是相应的二维频率滤波器。R是行数,C 是我们希望的滤波器的列数。通常,我们令R=PQ(1),C=PQ(2)。

    做一个空间滤波和频率域滤波的比较

    f=tofloat(f);
    >> F=fft2(f);
    >> S=fftshift(log(1+abs(F)));
    >> imshow(S,[])
    >> h=fspecial('sobel')
    >h =
    
         1     2     1
         0     0     0
        -1    -2    -1
    >> PQ=paddedsize(size(f));
    >> H=freqz2(h,PQ(1),PQ(2));
    >> H1=ifftshift(H);
    >> imshow(abs(H),[])
    >> figure,imshow(abs(H1),[])
    

    原始图像以及傅里叶谱为
    灰度图像及其傅里叶谱
    由空间滤波器得到的频率域滤波器的傅里叶谱及其ifftshift处理后的傅里叶谱
    在这里插入图片描述

    进行空间滤波

    gs=imfilter(f,h);
    imshow(gs,[])
    

    在这里插入图片描述
    进行频率域滤波

    gf=dftfilt(f,H1);
     imshow(gf,[])
    

    在这里插入图片描述
    图像中的灰色调是由于gs和gf的负数值引起的,通过标定命令imshow,负数值会使得平均值增大。上面生成的Sobel模板h通过使用响应的绝对值来检测图像的水平边缘,更有意义。

    imshow(abs(gs),[])
     figure,imshow(abs(gf),[])
    

    空间滤波和频率域滤波的绝对值结果对比
    在这里插入图片描述

    使用空间滤波和频率域滤波得到的图像所有实用目的是相同的,通过计算他们的差值,我们证明这一事实:

     d=abs(gs-gf);
    >> max(d(:))
    
    ans =
    
      single
    
      8.0466e-07  %在这里 这个值的大小可以忽略不计。
    
    >> min(d(:))
    
    ans =
    
      single
    
         0
    
    

    这个例子说明对于一幅图像的滤波,无论是选择空间滤波,还是选择这种空间滤波相应的频域滤波,最后得到的结果都是相同的。

    展开全文
  • 转自:http://blog.csdn.net/forrest02/article/details/55510711频率域在介绍频率域图像处理之前,先提几个问题。 1.什么是频率域? 2.为什么要在频率域中进行图像处理?频率域的概念 频率域是指从函数的频率...

    转自:http://blog.csdn.net/forrest02/article/details/55510711

    频率域

    在介绍频率域图像处理之前,先提几个问题。 
    1.什么是频率域? 
    2.为什么要在频率域中进行图像处理?

    频率域的概念 
    频率域是指从函数的频率角度出发分析函数,和频率域相对的是时间域。简单说就是如果从时间域分析信号时,时间是横坐标,振幅是纵坐标。而在频率域分析的时候则是频率是横坐标,振幅是纵坐标。 
    举个例子,我们认为音乐是一个随着时间变化的震动。但是如果站在频域的角度上来讲,音乐是一个随着频率变化的震动,这样我们站在时间域的角度去观察你会发现音乐是静止的。同理,如果我们站在时间域的角度观察频率域的世界,就会发现世界是静止的,也是永恒的。这是因为在频率域是没有时间的概念的,那么也就没有了随着时间变化着的世界了。 
    另外,我们需要借助傅立叶变换,才能够在得到函数在频率域中的信息。

    为什么要在频率域中进行图像处理? 
    1). 可以利用频率成分和图像外表之间的对应关系。一些在空间域表述困难的增强任务,在频率域中变得非常普通; 
    2). 滤波在频率域更为直观,它可以解释空间域滤波的某些性质; 
    3).可以在频率域指定滤波器,做反变换,然后在空间域使用结果滤波器作为空间域滤波器的指导

    傅里叶变换

    谈到频率域,就不得不说傅里叶变换了。傅里叶是18世纪法国的一位伟大的数学家。他最大的贡献在于指出任何周期函数都可以表示为不同频率的正弦和或者余弦和的形式,每个正弦或者余弦乘以不同的系数(也就是被大家所熟知的傅里叶级数)。无论函数有多复杂,只要它是周期性的,并且满足一定的数学条件,就一定可以用这样的正弦和或者余弦和的形式来表示。甚至在有些情况下,非周期函数也可以用正弦和或者余弦和的形式来表示。用傅里叶级数或变换表示的函数特征可以完全通过傅里叶反变换来重建,而不会丢失任何信息。而正是所谓的“傅里叶变换”使得我们可以工作于频率域。

    一维连续函数的fourier变换

    这里写图片描述 
    其中,f(x)表示原函数,F(u)表示变换之后的函数。u为频率域变量。这里写图片描述

    一维连续函数的fourier反变换 
    这里写图片描述 
    这里写图片描述

    。。。公式编辑有点小麻烦,暂时先用截图吧。请允许我小小的偷懒。。。

    注意前面讲过任何周期函数都可以被写成若干个正弦波(余弦波)的叠加。为了便于理解,在网上找了几张图片。 
    这里写图片描述 
    第一幅图是一个郁闷的余弦波cos(x) 
    第二幅图是2个卖萌的余弦波的叠加cos(x)+a.cos(3x) 
    第三幅图是4个“可爱”的余弦波的叠加 
    第四幅图是10个“难受”的余弦波的叠加 
    随着余弦波数量逐渐的增长,最终叠加成一个标准的矩形,大家从中体会到了什么?

    这里写图片描述 
    这里写图片描述 
    f为原图像, 傅里叶变换函数。傅里叶变换将函数的时域(红色)与频域(蓝色)相关联。频谱中的不同成分。频率在频域中以峰值形式表示。 
    //这里原图是一幅动态图,想看效果的朋友,请自行google傅立叶变换,weki上有动态图。

    二维离散傅立叶变换

    图像尺寸为M*N的函数f(x,y)DFT为

    这里写图片描述 
    其中,u=0,1,2,…,M-1;v=0,1,2,…,N-1 
    给出F(u,v)由反DFT反变换可得到f(x,y)

    这里写图片描述

    傅立叶变换的基本概念:

    1.频谱

    这里写图片描述 
    2.相位角

    这里写图片描述

    傅立叶变换的性质:

    1. 共轭对称性

      如果f(x,y)是实函数,则它的傅里叶变换具有 共轭对称性

    这里写图片描述 
    2 . 周期性

    这里写图片描述

    复习:当两个复数实部相等,虚部互为相反数时,这两个复数叫做互为共轭复数.

    周期性和共轭对称性 
    对于一维变换F(u),周期性是指F(u)的周期长度为M,对称性是指频谱关于原点对称

    这里写图片描述 
    通过将原点的变换值移动到频率矩形的中心位置,可简化频谱的 
    视觉分析。这可以通过在计算一维傅立叶变换之前将f(x)乘以 (-1)^x 来完成。

    周期性和共轭对称性举例 
    这里写图片描述 
    通过将原点的变换值移动到频率矩形的中心位置,可简化频谱的视觉分析。这可以通过在计算二维傅立叶变换之前将f(x,y)乘以这里写图片描述![这里写图片描述来完成。 
    3. 平均值

    由二维傅里叶变换的定义

    这里写图片描述 
    所以在原点的傅立叶变换等于图像f(x,y)的平均灰度级 
    4. 卷积定理

    空间域和频率域的基础都是卷积定理

    大小为M×N的两个函数f(x,y)和h(x,y)的离散卷积

    这里写图片描述 
    卷积定理

    这里写图片描述 
    说明 第一个表达式表明: 
    两个空间函数的卷积可以通过计算两个傅立叶变换函数的乘积的逆变换得到。 
    相反,两个空间函数卷积的傅立叶变换恰好等于两个函数的傅立叶变换的乘积

    频率域滤波

    低通滤波器:使低频通过而使高频衰减的滤波器 
    1.被低通滤波的图像比原始图像少尖锐的细节部分而突出平滑过渡部分 
    2.对比空间域滤波的平滑处理,如均值滤波器

    高通滤波器:使高频通过而使低频衰减的滤波器 
    1.被高通滤波的图像比原始图像少灰度级的平滑过渡而突出边缘等细节部分 
    2.对比空间域的梯度算子、拉普拉斯算子

    低通滤波器

    这里写图片描述 
    原图像的频谱 
    这里写图片描述 
    低通滤波器示意图 
    这里写图片描述 
    滤波效果 
    这里写图片描述

    说明:这里的低通滤波,意思就是把频率低的波留下,把频率高的波过滤掉。示意图是经过居中处理的频谱,就是从频谱的中心到四周频率由低到高。示意图表示的是,留下中间低频的,过滤点中心周围高频的部分。我们知道,低频对应的图像中变化不明显的部分,于是,图像就变的非常模糊。这在图像处理中也叫平滑滤波。再介绍一个概念:图像的锐化。就是与平滑化相对,即下面高通滤波器所达到的效果。很明显,图像边缘增强了。

    高通滤波

    原图 
    这里写图片描述 
    原图的频谱 
    这里写图片描述 
    高通滤波器示意图 
    这里写图片描述 
    效果图 
    这里写图片描述 

    展开全文
  • 发现因为是走马观花的过了一遍,所以看得稀里糊涂的,然后许多地方混淆了概念,特别是关于图像频率域的部分的理解(包括图像频率域滤波之类的),所以下面总结一下这段时间重新看《数字图像处理》(电子工业出版社,...

    前段时间看了很多的概念和知识,发现因为是走马观花的过了一遍,所以看得稀里糊涂的,然后许多地方混淆了概念,特别是关于图像频率域的部分的理解(包括图像频率域滤波之类的),所以下面总结一下这段时间重新看《数字图像处理》(电子工业出版社,Matlab本科教学版)第三章重新收获的关于频率域的理解。

    首先,我们要明确的概念是空间域和频率域,我们通过imread函数得到的一幅图像(基本上也是我们平时说的图像),是处在空间域的,也就是说用f(x,y)表征的某一点的灰度值(或者是单色图像中某一点的亮度)的这种形式,就是在空间域里面。

    那么什么是图像的频率域呢?理解了图像的频率的概念,就不难理解频率域。我个人理解是这么类比的,图像可以看成是一个特殊的二维的信号,然后某一点的灰度级,其实就是图像信号上这一点的”幅度“,那么根据信号的概念,频率就是信号变化的快慢,这样就好理解了,所谓的频率也就是这个图空间上的灰度变换的快慢,或者是叫图像的梯度变化,什么地方梯度频率比较大呢?这在图像中自然是“边界”比较大。举个例子来讲,如果一幅图整体变化不大(比如说是一面墙的图),那么他在频率域下低频成分就很多,而高频成分就极少。而显然如果是一幅国际象棋棋盘,他的高频成分相对刚才那幅墙的图片来说,肯定多得多。

    然后从图像域变换到频率域,我们用的函数就是大名鼎鼎的二维离散傅里叶变换了:

    令f(x,y)表示一幅大小为MXN像素的数字图像,其中,x=0,1,2······M-1, y=0,1,2······N-1,由F(u,v)表示的f(x,y)的二维离散傅里叶变换(DFT)由下式给出:


    式子当中,u也是属于0到M-1,v属于0到N-1。频率域就是属于u,v作为频率变量,由F(u,v)构成的坐标系,这块MXN的区域我们通常称为频率矩形,很明显频率矩形的大小和输入图像的大小相同。

    有傅里叶变换,当然就有傅里叶反变换(IDFT):


    这里多提一句,按照书上的说法,在DFT的表达式中,1/MN项出现在正变换前面,而在有些表达式中就如上式那样出现在反变换前面,因为Matlab采用的是后者,所以书上的公式就是用的上式那种了。

    由上面的公式可以看出几个点:

    1.    不难看出,F(0,0)等于f(x,y)平均值的MN倍,因为带入到傅里叶变换公式中可以得到F(0,0)实际上就是图像中所有f(x,y)求和。所以我们也常把F(0,0)称作傅里叶变换的直流分量。

    2.    我们可以很明显的看出,在频率域中的一点(u,v)的值F(u,v),他并不决定于空间域中(x,y)的值,而是跟整个图像空间域中的所有的点都有关系,因此,在频率域中的一点(u,v)的值,例如说F(5,5)和空间域上的这一点f(5,5)并没有什么关系,而是决定于整幅图像。

    接下来书上讲了傅里叶变换的一些性质,还有傅里叶谱,变换的相角定义,功率谱定义等等概念,因为打公式太麻烦,这里就不多赘述了,可以在网上找到现成的公式定义和概念。

        傅里叶变换性质里面个人认为比较重要的是周期性,因为周期性的缘故,所以在傅里叶变换过后的频率图里,四角的是低频分量(具体的我也不太清楚,但是比如低频分量),我们到时候会把低频分量移到中心位置来,因为大部分图像的低频分量其实更多,所以会在边角上比较亮,放到中间来比较好看。

        下面举例一幅图说明看一幅频率域傅里叶谱图:

    1. f=imread(’3.jpg’);
    2. imshow(f);%显示原图
    3. F=fft2(f);%做傅里叶变换
    4. S=abs(F);%取傅里叶谱
    5. figure,imshow(S,[]);%显示傅里叶谱


     

        

    左图是原图,右图是频率图,频率图中的亮暗说明了对应频率的多少,上面已经谈过,如果从右图可以看出来是边上的四个点比较亮,这说明原图中低频分量比较多,也就是说原图中的变化比较少。换句话来说,如果原图看成地形的话,那说明大部分地形非常平坦。

    我们可以通过公式(欧拉公式e^(2*pi*j)=1以及指数的计算),可以很容易发现(图是盗的- -):


    上式最左边那个符号表示求傅里叶变换。由上式知道这么弄一番之后,是可以把频率图的原点放到中心的。

    在matlab中用的是fftshift函数。

    居中过后的频率谱显示如下:


    可以看得更清楚一些,这个时候因为其实频率谱的范围是很大的,相对于低频分量来说,高频分量的值比较少,所以可以用对数变换(log(1+abs(F))将高频细节扩展出来,显示如下:


    细节还是突出的比较明显的哈!

    下面谈谈对滤波的理解,不知道是不是完全正确

    滤波和算子都是数字图像处理的基本操作,其中滤波是指在像素领域(空间域)内做领域处理(中值滤波、均值滤波)或者在图像频域内(需要先做傅里叶变换)做处理(低通滤波、高通滤波、带通滤波)。算子一般就是指的是卷积算子了。

    先来谈谈空间域的滤波。什么叫领域处理呢?领域处理的就是对领域进行一系列的操作:

    (1)    选取中心点(x,y);

    (2)    仅对预先定义的点(x,y)的领域内的像素执行操作;

    (3)    令运算结果为该点处的响应;

    (4)    对图像中的每一点重复该处理。

    中心点移动的过程中会产生新的领域,每个领域对应输入图像上的一个像素。用来标识该处理的两个主要术语是领域处理和空间滤波,其中后者更为通用。如果对领域中像素执行的计算是线性的,则称该操作是线性空间滤波。(也用术语空间卷积);否则称为非线性空间滤波。

    线性操作包括领域中的每个像素乘以相应的系数,将结果求和,从而得到点(x,y)处的响应。若领域的大小为mxn,则需要mn个系数。这些系数被排列为一个矩阵,称为滤波器(模板)/滤波模板/核/掩模或者窗口。其中前三个属于最常见。为变得更明显一些,也用卷积滤波、卷积模板或者卷积核等术语。

    再来说下卷积算子是个什么意思:

    在这里盗一下网上的图:


    然后如上所示,图片中右上角的那个矩阵h=[2 9 4;

                                            7 5 3;

                                            6 1 8;]

    就是后面经常提到的模板了,在相关书本上一般也写作w(x,y)。如果把基于乘积和的值用来替代成原来的(x,y)的值,那么这种滤波方式叫做线性滤波(比如拉普拉斯算子)。其他的叫做非线性滤波。

    空间域滤波的最常见的就是中值滤波和均值滤波,顾名思义,中值滤波就是用图像领域中所包含的像素的排序集合的中值进行替代,而均值滤波是用领域像素们的均值进行滤波。中值滤波也属于统计排序滤波。

    接下来介绍频率域的滤波:

    首先,有个定理,叫做卷积定理:

       f(x,y)★h(x,y)óH(u,v)F(u,v)

    上式中★代表卷积,ó代表一个傅里叶变换对。

    频率域的滤波比较多的就是高斯低通/高斯高通滤波器了,和空间域稍微有区别的是,在频率域内不是进行的领域处理,而是进行的是函数修改:

    G(u,v)= H(u,v)F(u,v)

    函数H(u,v)又叫做滤波器传递函数,频率域滤波的思想就是选择一个滤波器传递函数,该函数按照指定的方式修改F(u,v)。

    由卷积定理可知,在频率域中让F(u,v)乘以空间滤波器的傅里叶变换H(u,v),再做一个傅里叶反变换,就可以得到用空间域滤波器滤波后的图像了(这也是相当于用DFT的方式在做卷积,用这种方式做卷积又叫循环卷积)。

    值得一提的是,注意,当作循环卷积的时候,因为F和H都是周期函数,所以G必然也是周期函数,在周期接近函数非零部分的持续周期时对周期函数进行卷积会引起相邻周期的串扰(这种串扰又叫折叠误差),所以要通过补零的方法来避免。比较拗口,还是举例来说明:一个上黑下白的方块图片,在DFT卷积的时候我们假设在处理上边沿了,结果因为是周期的所以上边沿其实在处理时会受到上边沿上面另一个方块的下边沿的白色部分的影响(具体的例子见书P63页),补0之后就不会受影响了。

     


                </div>
    
    展开全文
  • Fourier变换 ...因为计算机处理的是离散值,要求对f(x)和F(w)都采样,这时Fourier变换被称为离散Fourier变换(DFT),为: 求出离散Fourier变换需要的计算次数很多,为了降低计算量,可以利用快速Fo
    1. Fourier变换
      Fourier变换最开始由傅里叶提出,当时为了解决热力学问题。后来经过发展形成了一套完整的理论,应用在物理学、信号学等很多方面。如果一个函数满足绝对可积条件,即:
      这里写图片描述
      因为计算机处理的是离散值,要求对f(x)和F(w)都采样,这时Fourier变换被称为离散Fourier变换(DFT),为:
      这里写图片描述
      求出离散Fourier变换需要的计算次数很多,为了降低计算量,可以利用快速Fourier变换方法(FFT),其利用了相位因子对称性和周期性:
      这里写图片描述
      将f(n)拆分为两部分,分别计算这两部分DFT,然后每个部分再进行拆分,直到不能再进行拆分为止。
      这里写图片描述
      由于A(k)和B(k)是关于N/2周期对称,所以有:
      这里写图片描述
      然后一直不断进行分割。这样可以大大降低计算量。
      附上MATLAB代码:
    function y=FFT_recur(x)
    
    N=length(x);
    
    x1=zeros(1,N/2);
    x2=zeros(1,N/2);
    
    y=zeros(1,N);
    
    %split x into two space: odd and even
    for j=1:N
       if mod(j,2)==0
           x1(j/2)=x(j);
       else
           x2((j+1)/2)=x(j);
       end
    end
    
    
    if N==2
        y(1)=x(1)+x(2);
        y(2)=x(1)-x(2);
    else
        x_a=FFT_recur(x1);
        x_b=FFT_recur(x2);
        for k=1:N/2
            y(k)=x_a(k)+exp(-i*2*pi*(k-1)/N)*x_b(k);
            y(k+N/2)=x_a(k)-exp(-i*2*pi*(k-1)/N)*x_b(k);
        end
    end
    1. 二维图像频率滤波
      频率域滤波方法有很多,主要是滤除某种频率成分,从滤除成分来看分为低通滤波、高通滤波、带通滤波等,技术手段上看有理想低通滤波、ButterWorth滤波,高斯滤波等。
      现在分别讨论这三种滤波器。低通滤波器可以表示为在某一个频率范围是1,而之外为0。对于一幅图像,其中心频率位于DFT变换函数的矩形中心,即F(k,l)中心(N/2,M/2),则理想低通表示为:
      这里写图片描述
      对于理想低通滤波器,其Fourier反变换函数为sinc函数,其图形如下
      这里写图片描述
      图1 理想低通滤波器
      低通滤波器频率域相乘,在空间域为卷积,上述函数在和DFT变换前函数卷积时,其边瓣会造成振铃。
      为了消除边瓣的波动,产生了ButterWorth和高斯滤波,当然也是因为理想低通滤波无法在物理上实现。而ButterWorth滤波器为
      这里写图片描述
      MATLAB实现代码如下:
    function ifft_image=filter_frequency(image,mode,mode_parameter)
    
    %fourier transformation
    fft_image=fft2(image);
    fft_image=fftshift(fft_image);
    
    [row,col]=size(fft_image);
    filter_temp=zeros(row,col);
    
    %Low Pass filter
    if strcmp(mode,'LowPass')
    
        for i=1:row
            for j=1:col
                if sqrt((i-row/2)^2+(j-col/2)^2)<=mode_parameter
                    filter_temp(i,j)=1;
                else
                    filter_temp(i,j)=0;
                end
            end
        end
    
    %Butter Worth filter with n=2    
    elseif strcmp(mode,'ButterWorth')
        for i=1:row
            for j=1:col
                filter_temp(i,j)=1/(1+(sqrt((i-row/2)^2+(j-col/2)^2)/mode_parameter)^4);
            end
        end
    
    %gaussion filter
    elseif strcmp(mode,'Gaussion')
        for i=1:row
            for j=1:col
                filter_temp(i,j)=exp(-((i-row/2)^2+(j-col/2)^2)/(2*mode_parameter^2));
            end
        end
    
    end
    
    fft_image=fft_image.*filter_temp;
    
    fft_image=ifftshift(fft_image);
    ifft_image=ifft2(fft_image);
    ifft_image=abs(ifft_image);
    1. 结果
      这里写图片描述
      图2 (a)原始1024x1024图像 (b)加入了周期噪声
      这里写图片描述
      图3 低通滤波 (a)D0=100 (b)D0=300
      这里写图片描述
      图4 ButterWorth滤波 (a)D0=100 (b)D0=300
      这里写图片描述
      图5 高斯滤波 (a)D0=100 (b)D0=300
    展开全文
  • 频率域图像增强

    2018-08-03 17:59:26
    空间域图像增强与频率域图像增强是两种截然不同的技术,实际上在相当程度上说它们是在不同的领域做相同的事情,是殊途同归的,,只是有些滤波更适合在空间域完成,而有些则更适合在频率域中完成   2傅里叶变换...
  • 频率域图像处理基础

    2011-09-25 12:36:31
    谈到频率域,就不得不说傅里叶变换了。傅里叶是18世纪法国的一位伟大的数学家。他最大的贡献在于指出任何周期函数都可以表示为不同频率的正弦和或者余弦和的形式,每个正弦或者余弦乘以不同的系数(也就是被大家所...
  • 一、在频率域中直接生成滤波器 1,创建用于实现频域滤波器的网格数组的M函数 要在频域内生成一个滤波器,创建一个能够计算任何一点到频率矩形中指定点的距离的M函数是基础的一步。 M函数代码如下: function [U,...
  • matlab频率域图像处理代码和实验报告-实验、频率域图像处理.rar 频率域图像处理 实验三、频率域图像处理 (一)实验目的: 1、理解图像的傅立叶变换; 2、掌握频率域滤波的基本方法。 (二)实验要求: 1...
  • 比如在空间图像里不好找出噪声的模式,如果变换到频率域,则比较好找出噪声的模式,并能更容易的处理。 具体名词解释如下: 空间域 英文: spatial domain。 释义: 又称图像空间(image space)。由图像像元组成的...
  • 文章目录频率域图像增强1. 傅里叶变换1.1 一维傅里叶变换总结 频率域图像增强 1. 傅里叶变换 1.1 一维傅里叶变换 单变量连续函数f(x)的傅里叶变换F(u)定义为等式: 反变换可以定义为: 上述这两个式子,就反映了...
  • 对于做图像处理的人来说,每一副数字图像在他们眼里就是一组信号,也就是说做图像处理相当于就是做的信号处理。对于信号有他的频域特征以及时域特征。我们最熟的应该是时域特征(图像里面叫空间比较好)啦,我的...
  • 作者是一名在读的硕士研究僧,方向是机器视觉。由于视觉是一门相对复杂的学科,作者在课堂上学到的东西只是非常浅显的内容,我们老师说是,领...作者使用的是冈萨雷斯的《数字图像处理(Matlab版)》,打算先用ma...
  • 第四章 频率域处理 第四章 频率域处理 一单变量离散傅里叶变换DFT 二二维离散傅里叶变换DFT 三频率域滤波 1 使用频率域滤波器平滑图像 11 理想低通滤波器ILPF 12 布特沃斯低通滤波器BLPF 13 高斯低通滤波器GLPF ...
  • 本节书摘来自异步社区《精通...第6章 频率域图像增强 精通Matlab数字图像处理与识别空间域和频率域为我们提供了不同的视角。在空间域中,函数的自变量(x,y)被视为二维空间中的一点,数字图像f(x,y)即为一个...
  • 频率域滤波

    2018-03-03 10:01:36
    频率域在介绍频率域图像处理之前,先提几个问题。 1.什么是频率域? 2.为什么要在频率域中进行图像处理?频率域的概念 频率域是指从函数的频率角度出发分析函数,和频率域相对的是时间域。简单说就是如果从时间域...
  • 文章目录频率域锐化理想高通滤波器巴特沃斯滤波器指数高通滤波器梯形高通滤波器 频率域锐化 图像的边缘和细节主要位于高频部分,而**图像出现的模糊是由于高频成分比较弱而产生的。频率域锐化的目的是为了消除模糊,...
  • 基于频率域平滑滤波的数字图像处理方法研究论文,附源代码,能够实现图像的频率域平滑滤波效果,适用于图像去噪等。
  • 转载说明:本文使用方俊老师的讲义,仅供学习 4.高通滤波 ...我们现在知道了为何要利用频域处理图像以及其效果,那么如何直接从空域进行处理而不必先转成频域处理过后再转回来?由前面的卷积定理即可理解:
  • 三、频率域滤波 四、二维离散变换的性质 五、实现 六、相关资源 序言:对图像而言,空间频率是指单位长度内亮度作为周期性变化的次数! 一、傅里叶变换基础 一维傅里叶变换数学推导 首先,我们知道傅里叶级数...
  • 频率域基础请参考“图像处理频率域数学基础”。 通过傅里叶变换,可以把图像从空间域转换到频率域。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。频率直接关系到图像空间灰度的变化...
1 2 3 4 5 ... 20
收藏数 13,950
精华内容 5,580
关键字:

频率域图像处理