二维傅里叶变换是怎么进行的？
2020/3/3更新，最初更新在专栏文章里，现同步至此，增加了一些公式，准确了一些用语，调整了一下回答的逻辑。 欢迎关注我的专栏： -------------------------------------------------------------------- 公式： F\left( w \right) \,\,=\,\,\int_{-\infty}^{+\infty}{f\left( x \right) e^{-jwx}dx} 通俗来讲，一维傅里叶变换是将一个一维的信号分解成若干个复指数波 e^{jwx}  。而由于 e^{jwx}\,\,=\,\,\cos \left( wx \right) +i\sin \left( wx \right)  ，所以可以将每一个复指数波 e^{jwx} 都视为是余弦波+j*正弦波的组合。 对于一个正弦波而言，需要三个参数来确定它：频率 w ,幅度 A ，相位 \varphi 。因此在频域中，一维坐标代表频率，而每个坐标对应的函数值也就是 F(w) 是一个复数，其中它的幅度 |F(w)| 就是这个频率正弦波的幅度 A ，相位 \angle F(w) 就是 \varphi 。下图右侧展现的只是幅度图，在信号处理中用到更多的也是幅度图。 一维傅里叶变换就是一个基变换，在时域中，基是一族冲激信号 \left\{ \delta \left( x-n \right) \right\}  ,在频域中；基是 \left\{ e^{jwx} \right\}  ，而且这组基是正交基。 一维信号是一个序列，FT将其分解成若干个一维的简单函数之和。二维的信号可以说是一个图像，类比一维，那二维FT是不是将一个图像分解成若干个简单的图像呢？ 确实是这样，二维FT将一个图像分解成若干个复平面波 e^{j2\pi \left( ux+vy \right)} 之和。如下图： 通过公式，我们可以计算出，每个平面波在图像中成分是多少。从公式也可以看到，二维傅里叶变换就是将图像与每个不同频率的不同方向的复平面波做内积（先点乘在求和），也就是一个求在基 \left\{ e^{-j2\pi \left( ux+vy \right)}\right\} 上的投影的过程。（应该知道 \frac{\overrightarrow{a}\cdot \overrightarrow{\begin{array}{c} 	b\\ \end{array}}}{|\overrightarrow{a}|} 是b在a上的投影，只不过这里的|a|的值被设为1，所以只有内积） 对于正弦平面波，可以这样理解，在一个方向上存在一个正弦函数，在法线方向上将其拉伸。前面说过三个参数可以确定一个一维的正弦波。哪几个参数可以确定一个二维的正弦平面波呢？答案是四个，其中三个和一维的情况一样（频率 w ,幅度 A ，相位 \varphi），但是具有相同这些参数的平面波却可以有不同的方向 \vec{n} 。如下图所示： 类比一维中，幅度和相位可以用一个复数表示，它可以作为我们存储的内容。但是还有两个：一个频率一个方向。这时想到向量是有方向的，也是有长度的。所以我们用一个二维的矩阵的来保存分解之后得到的信息。这个矩阵就是K空间。（一般用k来表示空间频率，单位是1/m） 什么意思呢？就是说一个二维矩阵点 \left( u,v\right)  代表这个平面波的法向量\vec{n}，这个向量的模 \sqrt{u^2+v^2} 代表这个平面波的频率 w ，这个点里面保存的内容复数就是此平面波的幅度和相位。下面这个图很好的体现了这一点： 也因此K空间的中心对于低频，周围对于高频。如下图，K空间中只有（0，0）处有值，也就是信号都是直流即不存在变化，所以实空间就是一张白纸。 再如下面这个图片，中心低频贡献了图像的主体，周围高频提供图像的细节和边缘。 因此，k空间的每一个位置存储的数代表了所在位置复平面波在图像中占多少成分，我们就可以用每个系数*所代表的平面波相加得到原来的图像，也就是下图。所以k空间和对应图像储存的信息含量是一样的，只不过表现形式不同，或者说基不同。 在数字图像中，数据都是离散的。也就涉及到采样的问题，和一维一样，如果采样率过低，k空间就会混叠。同时在k空间中采样过低，图像也会混叠。 FOV和分辨率在k空间和图像中是相反的关系。也就是： \Delta x=\frac{1}{2*k_{xmax}},\Delta k=\frac{1}{2*x_{xmax}}=\frac{1}{FOV} 从平面波的角度很容易理解，旋转没有改变平面波的幅度相位，只是将所有的平面波都旋转了一个角度。下面这个图像显示了二维傅里叶变换中，实空间旋转多少，频率空间也会相应旋转多少。这其实是高维傅里叶变换缩放定理的一种特殊情况。（连续的是可以证明的，离散的涉及插值 ，不一定完全准确） 1.因为matlab中的fft算法都是将0放在第一个的，所有写matlab时一定要将k空间fftshift一下使得零频回到k空间中心。 2.简单的应用k空间进行去噪例子。通过去掉明显的k空间的异常峰，可以去除图像中有规律变化的噪声或者伪影。 题中的第一幅图像可以看作是方波的一部分拉伸得到的。在一维FT中，可以知道，方波的频谱延伸至无穷远，在二维中就是各个频率的正弦平面波都有，所以会在K空间中有一条横线。因为y方向没有任何变换，所以只在y=0处有值。 第二幅图也可以理解为y方向的方波拉伸得到，与上类似。或者可以看作第一幅图旋转得到，因频率空间也会旋转相应角度。 1、始终想不通为啥各个波的叠加能反应出某一个像素点的信号大小 你把它理解向量分解就懂了，平面波就是基，k空间里的数就是基的系数。你得到系数（k空间）的时候就是在投影，变为原向量（图像）就是叠加。只不过这里一个图像是一个向量而已。复平面波叠加时，先经过放大（幅度）在经过移位（相位），相位信息里保留了很多位置信息，可以查看我的另一个回答： 2、傅里叶变换后图像是关于频率矩形中心对称的，那么对称的4个平面三角波不就是注定了幅值和相角，频率是相等的。那么这样不是说明了任何波都是包含了4个这样对称的三角波，由它们组成？ 是中心共轭对称，而没有左右上下的对称。而且只有实数图像的k空间才有这种特点，这是为了将复平面波中的虚部抵消掉，只留下实数部分。复数图像的k空间没有共轭对称的特点。下面是k空间的一部分数据，中心点为（101，101）。  参考： [1] http://mriquestions.com [2] A. Zisserman's lecture in B14 Image Analysis（这个slides真的不错，大家可以下载看看，里面也有其他的内容）