精华内容
下载资源
问答
  • 文件内包含对二维傅里叶变换结果进行二维峰值检索的MATLAB代码
  • 傅里叶级数、一维傅里叶变换到二维傅里叶变换数理推导 参考资料: 如何理解傅里叶级数公式 从傅里叶级数到傅里叶变换 高维傅里叶变换的推导 IDL实现傅里叶变换 傅里叶级数 一维傅里叶变换 二维傅里叶变换 ...

    傅里叶级数、一维傅里叶变换到二维傅里叶变换数理推导

    参考资料:
    如何理解傅里叶级数公式
    二重傅里叶级数
    从傅里叶级数到傅里叶变换
    高维傅里叶变换的推导
    连续傅里叶变换和离散傅里叶变换
    二维离散傅里叶变换
    IDL实现傅里叶变换

    想要用傅里叶变换的思维处理一个时序数据,将时序信息转换为参数信息,实现降维的目的。大致了解了一下傅里叶级数,如何从傅里叶级数转到傅里叶变换以及一维傅里叶变换和二维傅里叶变换的过渡,傅里叶变换的求解,快速傅里叶变换等知识。
    傅里叶变换是一种从时域信息转为频域信息的手段,可以理解为从不同的角度来观察一个事物,例如总是被用来举例的听到的钢琴曲和乐谱,就是一个是时域一个频域,但是无论是时间维度听到的钢琴声还是频域维度看到的乐谱,他俩实质上描述的东西是一样的。

    傅里叶级数

    首先是傅里叶级数的概念以及这个概念被提出来的初衷。
    最早,数学家发现某些周期函数可以由三角函数的和来表示,后来又有人猜测任意周期函数都可以写为三角函数之和。只需要三角函数之和函数满足以下几点:1)有常数项;2)同时包含奇函数和偶函数来组合出任意函数;3)周期与原函数周期相同,为T;4)可以调整振幅来逼近原函数(也就是系数项)。
    构造出来的三角函数之和函数大致如下:
    在这里插入图片描述
    接下来的重点是如何来确定参数:
    在这里插入图片描述
    在确定参量的时候,引入欧拉公式:
    在这里插入图片描述
    最终得到的系数表达式为:
    在这里插入图片描述
    具体的函数构造以及求解原理可以参照博客如何理解傅里叶级数公式

    傅里叶变换

    傅立叶级数是基于周期函数的,如果我们把周期推广到无穷,那么也就变为了非周期函数,这就是傅立叶变换。
    在这里插入图片描述

    一维傅里叶变换到二维傅里叶变换

    对于傅里叶变换从一维到二维的扩展,主要参照知乎的一个回答
    类比于一维傅里叶变换将一个函数分解成若干个一维的简单函数(正弦波)之和,二维傅里叶变换将一个图像分解成若干个正弦平面波之和。如下图:
    在这里插入图片描述
    在这里插入图片描述
    二维离散傅里叶变换
    二维离散傅里叶变换DFT可分离性的基本思想是DFT可分离为两次一维DFT。因此可以用通过计算两次一维的FFT来得到二维快速傅里叶FFT算法。根据快速傅里叶变换的计算要求,需要图像的行数、列数均满足2的n次方,如果不满足,在计算FFT之前先要对图像补零以满足2的n次。
    一个M行N列的二维图像f(x,y),先按行队列变量y做一次长度为N的一维离散傅里叶变换,再将计算结果按列向对变量x做一次长度为M傅里叶变换就可以得到该图像的傅里叶变换结果,如式所示:
    在这里插入图片描述
    将上式分解开来就是如下的两部分,先得到F(x,v),再由F(x,v)得到F(u,v):
    在这里插入图片描述
    每一行由N个点,对每一行的一维N点序列进行离散傅里叶变换得到F(x,u),再对得到F(x,u)按列向对每一列做M点的离散傅里叶变换,就可以得到二维图像f(x,y)的离散傅里叶变换F(u,v).
    在这里插入图片描述
    同样,做傅里叶逆变换时,先对列向做一维傅里叶逆变换,再对行做一维逆傅里叶变换,如下式所示:
    在这里插入图片描述

    展开全文
  • 看了一个论文说二维傅里叶变换图谱经圆积分计算后可以得到一维傅里叶变换,求大神推导公式或者过程
  • 我们利用正交偏振方法将傅里叶谱的实部和虚部分开,从而测定了一维和二维傅里叶谱的相位。文中报道了位移狭缝和位移方孔傅里叶谱相位的测量结果,它们与用位移量计算出的相位值符合很好,因此证实了该方法的可靠性。在...
  • 资源为二维傅里叶变换的C++实现,内含多个示例,比较详细。
  • 结合频谱移位的二维傅里叶变换FPGA实现
  • 回顾一下一维FT公式: 通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个复指数波。而由于 ,所以可以将每一个复指数波 都视为是 余弦波+j*正弦波的组合。对于一个正弦波而言,需要三...

    点击上方“机器学习与生成对抗网络”,关注"星标"

    获取有趣、好玩的前沿干货!

    来自 | 知乎  阿姆斯特朗

    链接 | https://zhuanlan.zhihu.com/p/110026009

    文仅交流,侵删

    1.回顾一下一维FT

    公式:

    7fda2bd8666d54ed75fdd6bf66874c7916a.jpg

    通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个复指数波

    a8bc6985e8043277bbcfaa01ca002545d11.jpg 。而由于 

    d737e97f037ff5ce27dfe229f1b3f8cc1e1.jpg ,所以可以将每一个复指数波 

    a8bc6985e8043277bbcfaa01ca002545d11.jpg都视为是

    余弦波+j*正弦波的组合。

    对于一个正弦波而言,需要三个参数来确定它:频率

    88d306ea636ab151d14f795806b074e21d4.jpg ,幅度 

    1bd3681b289d1c2dae5749f14b042538426.jpg ,相位 

    d72a7d4020418472dd4b01935ec511be442.jpg 。因此在频域中,一维坐标代表频率,而每个坐标对应的函数值也就是 

    eb2bb3f7073cd44daeef7762d1e066e1cb2.jpg 是一个复数,其中它的幅度 

    41a303d9c306d1f64018a70414275393361.jpg 就是这个频率正弦波的幅度 

    1bd3681b289d1c2dae5749f14b042538426.jpg ,相位 

    407fcce10c98c97f2e8e8bd166a04252dfb.jpg 就是 

    d72a7d4020418472dd4b01935ec511be442.jpg 。下图右侧展现的只是幅度图,在信号处理中用到更多的也是幅度图。

    f8db888480ef2a93479412f434b62eb5.png

    一维傅里叶变换就是一个基变换,在时域中,基是一族冲激信号

    4ec26a3baac1ac657fd53b9d20658dc940e.jpg ,在频域中;基是 

    c42ca08360a3c20b27272370bc8896605d1.jpg ,而且这组基是正交基。

    d3bf395152c85804ae0cb85c08388213.png

    F=Mf,基变换示意图

    2.类比:从一维到二维

    一维信号是一个序列,FT将其分解成若干个一维的简单函数之和。二维的信号可以说是一个图像,类比一维,那二维FT是不是将一个图像分解成若干个简单的图像呢?

    确实是这样,

    二维FT将一个图像分解成若干个复平面波

    0be5ded2ea17760061a7d99771f2f537363.jpg 

    之和。如下图:

    dfb26bae0d09e7ec44bcd4cd81186518.png

    二维FT的公式:

    66b43f77bb15231a20dbceef4551b22358a.jpg

    通过公式,我们可以计算出,

    每个平面波在图像中成分是多少。从公式也可以看到,二维傅里叶变换就是将图像与每个不同频率的不同方向的复平面波做内积(先点乘在求和),也就是一个

    求在基

    c8347f85a08b5329dbef19a5535f68d2c2c.jpg 上的

    投影的过程。(应该知道

    c0ff7fc1072542ea99c81d8a869b7f4d39e.jpg 是b在a上的投影,只不过这里的|a|的值被设为1,所以只有内积)

    3.什么是二维频率域K-SPACE

    对于正弦平面波,可以这样理解,在一个方向上存在一个正弦函数,在法线方向上将其拉伸。前面说过三个参数可以确定一个一维的正弦波。哪几个参数可以确定一个二维的正弦平面波呢?答案是四个,其中三个和一维的情况一样(频率

    88d306ea636ab151d14f795806b074e21d4.jpg ,幅度 

    1bd3681b289d1c2dae5749f14b042538426.jpg ,相位 

    d72a7d4020418472dd4b01935ec511be442.jpg),但是具有相同这些参数的平面波却可以有不同的方向 

    530915b092e9a8bea3f30edc0a7e438df2c.jpg 。如下图所示:

    7fec12deb8b30f2bfa5d5bfdb820ab69.png

    两个不同方向的平面波叠加

    类比一维中,幅度和相位可以用一个复数表示,它可以作为我们存储的内容。但是还有两个:一个频率一个方向。这时想到向量是有方向的,也是有长度的。所以我们用一个二维的矩阵的来保存分解之后得到的信息。这个矩阵就是K空间。(一般用k来表示空间频率,单位是1/m)

    什么意思呢?就是说一个二维矩阵点

    2861a8ef78c7f25d4c5f04d530e21e7cf6c.jpg 代表这个平面波的法向量

    530915b092e9a8bea3f30edc0a7e438df2c.jpg,这个向量的模 

    ed15d68676df4ad5e12701b7f1f818e2848.jpg 代表这个平面波的频率 

    88d306ea636ab151d14f795806b074e21d4.jpg ,这个点里面保存的内容复数就是此平面波的幅度和相位。下面这个图很好的体现了这一点:

    20fa7413b2bd3b59caf483982e8741b8.png

    也因此K空间的中心对于低频,周围对于高频。如下图,K空间中只有(0,0)处有值,也就是信号都是直流即不存在变化,所以实空间就是一张白纸。

    bdcedba4d22bbb0b20975886efff408d.png

    再如下面这个图片,

    中心低频贡献了图像的主体,周围高频提供图像的细节和边缘。

    944d46ea0e3f5d50e06e273be8a46547.png

    因此,k空间的每一个位置存储的数代表了所在位置复平面波在图像中占多少成分,我们就可以用

    每个系数*所代表的平面波相加得到原来的图像,也就是下图。

    所以k空间和对应图像储存的信息含量是一样的,只不过表现形式不同,或者说基不同。

    9f641105f1fa2a2a5a8a456611dd2a51.png

    4.K空间的一些性质

    离散的2D-FT

    在数字图像中,数据都是离散的。也就涉及到采样的问题,和一维一样,如果采样率过低,k空间就会混叠。同时在k空间中采样过低,图像也会混叠。

    FOV和分辨率在k空间和图像中是相反的关系。也就是:

    823bdfefed1469e4f7c8c04e4a8a0a32402.jpg 

    eded2a21132e313eafca7f712dcb6dd9750.jpg

    938739463831a9fc50f5624110a29a4c.png

    dc9077d12acb3a0c246e460780bcfc02.png

    减小kmax,使得图像分辨率下降,减小Δk,使得FOV缩小。

    旋转不变性

    从平面波的角度很容易理解,旋转没有改变平面波的幅度相位,只是将所有的平面波都旋转了一个角度。下面这个图像显示了二维傅里叶变换中,实空间旋转多少,频率空间也会相应旋转多少。这其实是

    高维傅里叶变换缩放定理的一种特殊情况。(连续的是可以证明的,离散的涉及插值 ,不一定完全准确)

    2d65c13df7f8a166b5fb440c4209f722.png

    5.其他

    1.因为matlab中的fft算法都是将0放在第一个的,所有写matlab时一定要将k空间fftshift一下使得零频回到k空间中心。

    2.简单的应用k空间进行去噪例子。通过去掉明显的k空间的异常峰,可以去除图像中有规律变化的噪声或者伪影。

    a877289d55ca39ea332b7817734fcd8e.png

    指纹去噪

    63fa7471e8f69035f9955f563aa847a4.png

    天体表面去噪

    6、评论及解答

    1、始终想不通为啥各个波的叠加能反应出某一个像素点的信号大小

    你把它理解向量分解就懂了,平面波就是基,k空间里的数就是基的系数。你得到系数(k空间)的时候就是在投影,变为原向量(图像)就是叠加。只不过这里一个图像是一个向量而已。

    复平面波叠加时,先经过放大(幅度)在经过移位(相位),相位信息里保留了很多位置信息,可以查看我的另一个回答:

    为什么用图像二维傅里叶变换的相位谱进行反变换,能够大致得到原图的形状,而幅度谱则不行呢?

    https://www.zhihu.com/question/23718291/answer/1057562032

    2、傅里叶变换后图像是关于频率矩形中心对称的,那么对称的4个平面三角波不就是注定了幅值和相角,频率是相等的。那么这样不是说明了任何波都是包含了4个这样对称的三角波,由它们组成?

    是中心共轭对称,而没有左右上下的对称。而且只有实数图像的k空间才有这种特点,这是为了将复平面波中的虚部抵消掉,只留下实数部分。复数图像的k空间没有共轭对称的特点。下面是k空间的一部分数据,中心点为(101,101)。

    e08c60ee27bb2246cbf50e5d334cacb2.png

    参考:

    [1] http://mriquestions.com

    [2] A. Zisserman's lecture in B14 Image Analysis

    链接:http://www.robots.ox.ac.uk/~az/lectures/ia/lect2.pdf

    (这个slides真的不错,大家可以下载看看,里面也有其他的内容)

    展开全文
  • 二维傅里叶变换

    2014-10-10 12:43:20
    二维傅里叶变换 一个随时间或空间变化的周期函数(信号)f(x),可以看作是许多具有不同频率的基元
  • 本程序主要实现了二维傅里叶变换,其中先对图像矩阵进行预处理(即图像中心化),然后进行行傅里叶变换,再对其进行列变换,进行行列变换是调用自己写的一维傅里叶变换函数ImFFT实现的。程序输入为图像矩阵A,输出为...
  • 二维傅里叶分解matlab代码
  • 二维傅里叶变换的矩阵表示

    千次阅读 2020-03-30 23:25:29
    二维傅里叶变换的矩阵表示二维傅里叶变换公式二维傅里叶矩阵公式表达1. F(v,u)F(v,u)F(v,u) 为 R1×1R^{1\times1}R1×1 时2. F(v,u)F(v,u)F(v,u) 为 RNv×MuR^{N_v\times M_u}RNv​×Mu​ 时 说明: 做完了图像处理...


    说明: 做完了图像处理的实验报告,老师要求自己编二维傅里叶变换的算法,故不能用 Matlab 内置的 fft2 函数。循环求解会消耗大量的时间,考虑到 Matlab 的优势就在于矩阵运算,故有如下思考。
    (如有笔误,欢迎指正;转载请通知作者并注明来源,谢谢亲噢~)

    二维傅里叶变换公式

    离散时间变量二维傅里叶变换(DFT)的原始公式为:
    F ( u , v ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) e − j 2 π ( x M u + y N v ) F(u,v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi(\frac{x}{M}u+\frac{y}{N}v)} F(u,v)=x=0M1y=0N1f(x,y)ej2π(Mxu+Nyv)
    傅里叶变换具有可分性,所以我们有
    F ( u , v ) = ∑ y = 0 N − 1 e − j 2 π y N v ∑ x = 0 M − 1 f ( x , y ) e − j 2 π x M u F(u,v) = \sum_{y=0}^{N-1}e^{-j2\pi\frac{y}{N}v}\sum_{x=0}^{M-1}f(x,y)e^{-j2\pi\frac{x}{M}u} F(u,v)=y=0N1ej2πNyvx=0M1f(x,y)ej2πMxu

    二维傅里叶矩阵公式表达

    我们可以将该式转换为矩阵表达的形式,这样可以方便我们进行代码编程(特别是 Matlab 编程)
    由于 Matlab 显示图像的方式为:竖直向下为y轴正方向,而 f ( x , y ) f(x,y) f(x,y) 当中 x x x 的取值是对纵坐标进行检索,表示行的行数----这与我们潜意识认为的横轴,即水平方向为 x x x 轴方向的惯性思维不一致,故我做出如下改动
    F ( v , u ) = ∑ y = 0 N − 1 e − j 2 π y N v ∑ x = 0 M − 1 f ( y , x ) e − j 2 π x M u F(v,u) = \sum_{y=0}^{N-1}e^{-j2\pi\frac{y}{N}v}\sum_{x=0}^{M-1}f(y,x)e^{-j2\pi\frac{x}{M}u} F(v,u)=y=0N1ej2πNyvx=0M1f(y,x)ej2πMxu
    即简单的调换一下变元的表达方式,本质计算上没有改变。

    1. F ( v , u ) F(v,u) F(v,u) R 1 × 1 R^{1\times1} R1×1

    假设当 F ( v , u ) F(v,u) F(v,u) R 1 × 1 R^{1\times1} R1×1 时,有如下推导
    F ( v , u ) = ∑ y = 0 N − 1 e − j 2 π y N v [ f ( y , 0 ) f ( y , 1 ) … f ( y , M − 1 ) ] ⋅ [ 1 e − j 2 π 1 M u e − j 2 π 2 M u ⋮ e − j 2 π M − 1 M u ] F(v,u) =\sum_{y=0}^{N-1}e^{-j2\pi\frac{y}{N}v}\begin{bmatrix}f(y,0)&f(y,1)&\dots&f(y,M-1)\end{bmatrix} ·\begin{bmatrix}1\\e^{-j2\pi\frac{1}{M}u}\\e^{-j2\pi\frac{2}{M}u}\\\vdots\\e^{-j2\pi\frac{M-1}{M}u}\end{bmatrix} F(v,u)=y=0N1ej2πNyv[f(y,0)f(y,1)f(y,M1)]1ej2πM1uej2πM2uej2πMM1u
    其中
    [ f ( y , 0 ) f ( y , 1 ) … f ( y , M − 1 ) ] ⋅ [ 1 e − j 2 π 1 M u e − j 2 π 2 M u ⋮ e − j 2 π M − 1 M u ] = R 1 × M ⋅ R M × 1 = R 1 × 1 \begin{bmatrix}f(y,0)&f(y,1)&\dots&f(y,M-1)\end{bmatrix} ·\begin{bmatrix}1\\e^{-j2\pi\frac{1}{M}u}\\e^{-j2\pi\frac{2}{M}u}\\\vdots\\e^{-j2\pi\frac{M-1}{M}u}\end{bmatrix}=R^{1\times M}·R^{M\times 1}=R^{1\times1 } [f(y,0)f(y,1)f(y,M1)]1ej2πM1uej2πM2uej2πMM1u=R1×MRM×1=R1×1
    故我们可以知道
    f ( y , x ) ⋅ [ 1 e − j 2 π 1 M u e − j 2 π 2 M u ⋮ e − j 2 π M − 1 M u ] = R N y × M x ⋅ R M x × 1 = R N y × 1 f (y,x)·\begin{bmatrix}1\\e^{-j2\pi\frac{1}{M}u}\\e^{-j2\pi\frac{2}{M}u}\\\vdots\\e^{-j2\pi\frac{M-1}{M}u}\end{bmatrix}=R^{N_y\times M_x}·R^{M_x\times 1}=R^{N_y\times1 } f(y,x)1ej2πM1uej2πM2uej2πMM1u=RNy×MxRMx×1=RNy×1
    所以,后续可推导为
    ∑ y = 0 N − 1 e − j 2 π y N v = R 1 × N y \sum_{y=0}^{N-1}e^{-j2\pi\frac{y}{N}v}=R^{1\times N_y} y=0N1ej2πNyv=R1×Ny
    即可完成当 F ( u , v ) F(u,v) F(u,v) R 1 × 1 R^{1\times1} R1×1 时的累加

    2. F ( v , u ) F(v,u) F(v,u) R N v × M u R^{N_v\times M_u} RNv×Mu

    我们此时可以直接通过矩阵乘法的维度准则来推导,这里采取的是逆向思维
    R N v × M u = R N v × ? 1 ⋅ R N y × M x ⋅ R ? 2 × M u R^{N_v\times M_u}=R^{N_v\times ?1}·R^{N_y\times M_x}·R^{?2\times M_u} RNv×Mu=RNv×?1RNy×MxR?2×Mu
    很明显 ? 1 = N y ?1=N_y ?1=Ny ? 2 = M x ?2=M_x ?2=Mx
    分别将
    R N v × N y = [ 1 1 1 … 1 1 e − j 2 π 1 N 1 e − j 2 π 2 N 1 … e − j 2 π N − 1 N 1 1 e − j 2 π 1 N 2 e − j 2 π 2 N 2 … e − j 2 π N − 1 N 2 ⋮ ⋮ ⋮ e − j 2 π y N v ⋮ 1 e − j 2 π 1 N ( N − 1 ) e − j 2 π 2 N ( N − 1 ) … e − j 2 π N − 1 N ( N − 1 ) ] R^{N_v\times N_y}=\begin{bmatrix} 1&1&1&\dots&1\\ 1&e^{-j2\pi\frac{1}{N}1}&e^{-j2\pi\frac{2}{N}1}&\dots&e^{-j2\pi\frac{N-1}{N}1}\\ 1&e^{-j2\pi\frac{1}{N}2}&e^{-j2\pi\frac{2}{N}2}&\dots&e^{-j2\pi\frac{N-1}{N}2}\\ \vdots&\vdots&\vdots&e^{-j2\pi\frac{y}{N}v}&\vdots\\ 1&e^{-j2\pi\frac{1}{N}(N-1)}&e^{-j2\pi\frac{2}{N}(N-1)}&\dots&e^{-j2\pi\frac{N-1}{N}(N-1)} \end{bmatrix} RNv×Ny=11111ej2πN11ej2πN12ej2πN1(N1)1ej2πN21ej2πN22ej2πN2(N1)ej2πNyv1ej2πNN11ej2πNN12ej2πNN1(N1)
    R M x × M u = [ 1 1 1 … 1 1 e − j 2 π 1 M 1 e − j 2 π 1 M 2 … e − j 2 π 1 M ( M − 1 ) 1 e − j 2 π 2 M 1 e − j 2 π 2 M 2 … e − j 2 π 2 M ( M − 1 ) ⋮ ⋮ ⋮ e − j 2 π x M u ⋮ 1 e − j 2 π M − 1 M 1 e − j 2 π M − 1 M 2 … e − j 2 π M − 1 M ( M − 1 ) ] R^{M_x\times M_u}=\begin{bmatrix} 1&1&1&\dots&1\\ 1&e^{-j2\pi\frac{1}{M}1}&e^{-j2\pi\frac{1}{M}2}&\dots&e^{-j2\pi\frac{1}{M}(M-1)}\\ 1&e^{-j2\pi\frac{2}{M}1}&e^{-j2\pi\frac{2}{M}2}&\dots&e^{-j2\pi\frac{2}{M}(M-1)}\\ \vdots&\vdots&\vdots&e^{-j2\pi\frac{x}{M}u}&\vdots\\ 1&e^{-j2\pi\frac{M-1}{M}1}&e^{-j2\pi\frac{M-1}{M}2}&\dots&e^{-j2\pi\frac{M-1}{M}(M-1)} \end{bmatrix} RMx×Mu=11111ej2πM11ej2πM21ej2πMM111ej2πM12ej2πM22ej2πMM12ej2πMxu1ej2πM1(M1)ej2πM2(M1)ej2πMM1(M1)
    然后通过 Matlab 特有的矩阵乘法进行编程即可。

    展开全文
  • 二维傅里叶变换插值算法 可用于图像插值等
  • 二维傅里叶变换的物理意义 数字图像处理 终于明白二维傅里叶变换是什么意义了
  • 提出了合成孔径激光成像雷达(SAIL)的二维傅里叶变换成像算法,即对回波信号进行顺轨向相位二次项共轭补偿后直接实施二维傅里叶变换。归纳了啁啾光源侧视SAIL,平移二次项波面直视SAIL和偏转平面波面直视SAIL的数据...
  • fourier-transform opencv+vs2013 二维傅里叶变换
  • 图像的二维傅里叶变换频谱图特点研究,以及基于halcon得到的一些图谱分析。
  • 计算机利用二维傅里叶变换生成和再现全息图,很简单易懂。
  • 二维傅里叶变换需知

    2019-09-22 12:00:11
    from:... 代码如下,这个代码是实现灰度图像作二维傅里叶变换后的非线性变换哈~ clear all; I=imread('coins.png'); F=fft2((im2double(I))); F=fftshift(F); F=abs(F); T=log(F+1); subpl...

    from: https://blog.csdn.net/wenhao_ir/article/details/51037744

    代码如下,这个代码是实现灰度图像作二维傅里叶变换后的非线性变换哈~

    clear all;
    I=imread('coins.png');
    F=fft2((im2double(I)));
    F=fftshift(F);
    F=abs(F);
    T=log(F+1);

    subplot(1,2,1);
    imshow(F,[]);
    title('未经变换的频谱');

    subplot(1,2,2);
    imshow(T,[]);
    title('对数变换后');

    下面对上面代码中体现的知识点进行说明:
    1 F=fft2((im2double(I)));  作二维傅里叶变换前一定要先把用imread读到的数据原始图像的数据类型由uint8转化为double类型!
    2 fftshift是对MATLAB作傅里叶变换后的数据的零频点移到频谱的中间,具体的作用你看下面的代码的运行结果即可:
    代码下载链接:http://pan.baidu.com/s/1jIfGM2a 密码:iqxt


     
    原信号是:
    x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);
    可见,信号的频率是15Hz和40Hz,15Hz的幅度是0.5,40Hz的幅度是2,我们看到中间的那个蓝色频谱图,因为没有经过fftshift,那完全就是错的!所以为啥要用fftshift呢?根本原因就是MATLAB在作傅里叶变换时它没有负频率啊!它的频率范围是0到采样频率啊!具体到二维的图像傅里叶变换的意义可以参考下面这幅图:
     
    3 F=abs(F); 这个模实际上就是欧拉距离,实际上就是根号下[(x1-x2)^2+(y1-y2)^2]!

    4 imshow(F,[]);如果F是二维矩阵,则显示的是灰度或二值图像,后面的参数[]在这里是必须要的,加上的话会对数据做归一化处理再显示,如果不作这个处理的话,你想,如果数据跨度比较大,那么有很多数据都是超过255的,那么最后的结果就是整个图片的大部分范为都是白的,你可以想像一下,其实是很容易想到的!

     

    展开全文
  • 实现图像的二维傅里叶变换的频谱图 图像的频谱分析有助于我们理解图像的二维傅里叶变换(离散非周期),并且以直观的方式来展现图像的低通或高通滤波,然而如何获得图像的频谱呢?在matlab中只要短短的几行代码,就...
  • 通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个三角波。 对于一个三角波而言,需要三个参数来确定它:频率,幅度 A ,相位。因此在频域中,一维坐标代表频率,而每个坐标对应的函数值也就是是一个复数,...
  • 二维傅里叶变换频谱图的含义 在一维傅里叶变换得到的频谱图中,每个点表示其对应的幅度频率与其坐标对应的简谐波。 二位傅里叶变换的频谱图,简谐波的振幅由对应点处对应的亮度表示,每一个点表示的波形为其对应的...
  • 二维傅里叶分析.ppt

    2008-10-05 21:56:18
    信息光学 第1章 二维傅里叶分析.ppt
  • 本节为opencv数字图像处理(6):频率域滤波的第三小节,二维取样定理与二维傅里叶变换,主要包括:二维连续/离散傅立叶变换、二维取样及二维取样定理与二维离散傅立叶变换的性质。
  • 二维傅里叶分解matlab代码栅格图 该算法计算神经活动的一维或二维嵌入。 假设在时间点上,尖峰矩阵S是神经元。 我们有一个python 3和matlab实现,还有一个在python实现中运行它的GUI。 有关使用它的Jupyter笔记本,...
  • 1、二维傅里叶变换 1.1二维傅里叶变换定义 1.2性质 2、低通滤波器 2.1理想低通滤波器 3、高通 1、二维傅里叶变换 1.1二维傅里叶变换定义 首先通过傅里叶变换将图像从空间域转换为频率域,然后在频率域内对...
  • 一:二维傅里叶变换的数学 1.2D离散傅里叶公式解释: 1).2D傅里叶原始公式 F(u,v) (FFT的频谱图)其本质就是 2).2D傅里叶极坐标公式
  • 这学期选了《图像工程基础》这门课,课上老师留了一个作业:对图像进行二维傅里叶变换。 现在我使用matlab解决这个问题 1.实验基本指令 首先我试了一下matlab图像处理的基本指令 原图: 经过以下指令后 将...
  • 针对大口径光学元件干涉测试过程中,测试装置和干涉腔长较大,气流扰动和环境振动对移相测试过程产生影响等问题,采用一种基于二维傅里叶变换的单帧干涉图处理方法,只需要对一幅空间载频干涉条纹图进行处理即可获得待测...
  • 这是一个我自己用matlab编的二维傅里叶变换程序,和fft2结果几乎一样,希望对大家有用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,908
精华内容 5,163
关键字:

二维傅立叶