zoukankan      html  css  js  c++  java
  • 傅立叶变换理解

    [转]

    冈萨雷斯版<图像处理>里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。当我们考虑光时,讨论它的光谱或频率谱。同样, 傅立叶变换使我们能通过频率成分来分析一个函数。


    Fourier theory讲的就是:任何信(如图像信号)都可以表示成一系列正弦信号的叠加,在图像领域就是将图像brightness variation 作为正弦变量。比如下图的正弦模式可在单傅里叶中由三个分量编码:频率f、幅值A、相位γ 这三个value可以描述正弦图像中的所有信息。

    1.frequency

      


    frequency在空间域上可由亮度调节,例如左图的frequency比右图的frequency低……


    2.幅值magnitude(amplitude

    sin函数的幅值用于描述对比度,或者说是图像中最明和最暗的峰值之间的差。(一个负幅值表示一个对比逆转,即明暗交换。)

    3.相位表示相对于原始波形,这个波形的偏移量(左or右)。

    =================================================================

    一个傅里叶变换编码是一系列正弦曲线的编码,他们的频率从0开始(即没有调整,相位为0,平均亮度处),到尼奎斯特频率(即数字图像中可被编码的最高频率,它和像素大小、resolution有关)。傅里叶变换同时将图像中所有频率进行编码:一个只包含一个频率f1的信号在频谱上横坐标f为f1的点处绘制一个单峰值,峰值高度等于对应的振幅amplitude,或者正弦曲线信号的高度。如下图所示。


    DC term直流信号对应于频率为0的点,表示整幅图像的平均亮度,如果直流信号DC=0就表示整幅图像平均亮度的像素点个数=0,可推出 灰度图中,正弦曲线在正负值之间交替变化,但是由于灰度图中没有负值,所以所有的真实图像都有一个正的DC term,如上图所示。

    出于某些数学分析原因,我们经常把傅里叶变换用mirror-image表示,在原点的的两端,frequency都是增加的方向,具有相同的幅值。


    上面讲的都是一维信号,一个二维傅里叶变换是一维傅里叶变换在每一个行扫描线和列扫描线上的傅里叶变换的叠加。


    傅里叶谱图上的每一个像素点都代表一个频率值,幅值由像素点亮度变码而得。最中心的亮点是指直流分量,傅里叶谱图中越亮的点,对应于灰度图中对比越强烈(对比度越大)的点。

    由于每一列扫描线上没有变化,所以相应的fourier spectrum上行向量为0, 每一行扫描线上有contrast,所以有频率幅值。




    这里频率比上面的小,相应的亮点比上副图也集中。




    图像傅立叶变换的物理意义

    傅里叶提出任何周期函数都可以表示为不同频率的正弦和/或余弦和的形式,每个正弦和/或余弦乘以不同的系数(傅里叶级数)。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度.在噪声点和图像边缘处的频率为高频。

    傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数.

    傅立叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,我们习惯用一个二维矩阵表示空间上各点,则图像可由z=f(x,y)来表示。由于空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就由梯度来表示,这样我们可以通过观察图像得知物体在三维空间中的对应关系。为什么要提梯度?因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰.






    图像是两个参数的函数,通过一组正交函数的线性组合可以将其分解,而傅里叶就是通过谐波函数来分解的。而对于离散傅里叶变换,傅里叶变换的条件是存在的。

    傅里叶变换进行图像处理有几个特点

    1. 直流成分F(0,0)等于图像的平均值;

    2. 能量频谱|F(u,v)|^2完全对称于原点;其中F=PfQ, f表示原图,P和Q都是对称的实正交矩阵,这个公式表示傅里叶变换就是个正交矩阵的正交变换

    3.图像f平移(a,b)后,F只有exp[-2pij(au/M+bv/M)]的相位变化,能量频谱不发生变化。

    4. 图像f自乘平均等于能量频谱的总和,f的分散等于能量频谱中除直流成分后的总和。

    5.图像f(x,y)和g(x,y)的卷积h(x,y)=f(x,y)*g(x,y)的傅里叶变换H(u,v)等于f(x,y)和g(x,y)各自的傅里叶变换的乘积。


    图像中的每个点通过傅里叶变换都成了谐波函数的组合,也就有了频率,这个频率则是在这一点上所有产生这个灰度的频率之和,也就是说傅里叶变换可以将这些频率分开来。当想除去图像背景时,只要去掉背景的频率就可以了。

     

    在进行傅里叶变换时,实际上在某一特定的频率下,计算每个图像位置上的乘积。什么乘积呢,就是f(x,y)exp[-j2pi(ux+vy)],然后计算下一个频率。这样就得到了频率函数。

    也就是说,我们看到傅里叶变换的每一项(对每对频率u,v,F(u,v)的值)是由f(x)函数所有值的和组成。f(x)的值与各种频率的正弦值和余弦值相乘。因此,频率u, v决定了变换的频率成分(x, y也作用于频率,但是它们相加,对频率有相同的贡献)。

     

    通常在进行傅里叶变换之前用(-1)^(x+y)乘以输入的图像函数,这样就可以将傅里叶变换的原点F(0,0)移到(M/2,N/2)上。

     

    每个F(u,v)项包含了被指数修正的f(x,y)的所有值,因而一般不可能建立图像特定分量和其变换之间的联系。然而,一般文献通常会有关于傅里叶变换的频率分量和图像空间特征之间联系的阐述。变换最慢的频率成分(u=v=0)对应一幅图像的平均灰度级。当从变换的原点移开时,低频对应着图像的慢变换分量,较高的频率开始对应图像中变化越来越快的灰度级。这些事物体的边缘和由灰度级的突发改变(如噪声)标志的图像成分。

     

    在频率域中的滤波基础

    1. (-1)^(x+y)乘以输入图像来进行中心变换

    2. 由(1)计算图像的DFT, 即F(u,v)

    3. 用滤波器函数H(u,v)乘以F(u,v)

    4. 计算(3)中的结果的反DFT

    5. 得到(4)中的结果的实部

    6. 用(-1)^(x+y)乘以(5)中的结果



    另外我还想说明以下几点:

    1、图像经过二维傅立叶变换后,其变换系数矩阵表明:

    若变换矩阵Fn原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近(图中阴影区)。若所用的二维傅立叶变换矩阵Fn的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅立叶变换本身性质决定的。同时也表明一幅图像能量集中低频区域。
    2 、变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮亮度大说明低频的能量大(幅角比较大)


  • 相关阅读:
    判断鼠标点击在div外时,更改背景图片
    CSS--border边框颜色渐变
    实验一:Java开发环境的熟悉
    实验楼第四次试验报告
    实验楼第三次试验报告
    实验楼第二次试验报告
    实验楼第一次试验报告
    c++程序设计中的函数重载
    C++中,new/delete和malloc/free的区别
    继承和多态二:虚析构函数
  • 原文地址:https://www.cnblogs.com/zfluo/p/5131928.html
Copyright © 2011-2022 走看看