形象理解二维傅里叶变换
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
来自 | 知乎 作者 | 阿姆斯特朗
链接 | https://zhuanlan.zhihu.com/p/110026009
编辑 | 深度学习这件小事公众号
本文仅作学术交流,如有侵权,请联系后台删除
1.回顾一下一维FT
公式:
通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个复指数波 。而由于 ,所以可以将每一个复指数波 都视为是余弦波+j*正弦波的组合。
对于一个正弦波而言,需要三个参数来确定它:频率 ,幅度 ,相位 。因此在频域中,一维坐标代表频率,而每个坐标对应的函数值也就是 是一个复数,其中它的幅度 就是这个频率正弦波的幅度 ,相位 就是 。下图右侧展现的只是幅度图,在信号处理中用到更多的也是幅度图。
一维傅里叶变换就是一个基变换,在时域中,基是一族冲激信号 ,在频域中;基是 ,而且这组基是正交基。
F=Mf,基变换示意图
2.类比:从一维到二维
一维信号是一个序列,FT将其分解成若干个一维的简单函数之和。二维的信号可以说是一个图像,类比一维,那二维FT是不是将一个图像分解成若干个简单的图像呢?
确实是这样,二维FT将一个图像分解成若干个复平面波 之和。如下图:
二维FT的公式:
通过公式,我们可以计算出,每个平面波在图像中成分是多少。从公式也可以看到,二维傅里叶变换就是将图像与每个不同频率的不同方向的复平面波做内积(先点乘在求和),也就是一个求在基 上的投影的过程。(应该知道 是b在a上的投影,只不过这里的|a|的值被设为1,所以只有内积)
3.什么是二维频率域K-SPACE
对于正弦平面波,可以这样理解,在一个方向上存在一个正弦函数,在法线方向上将其拉伸。前面说过三个参数可以确定一个一维的正弦波。哪几个参数可以确定一个二维的正弦平面波呢?答案是四个,其中三个和一维的情况一样(频率 ,幅度 ,相位 ),但是具有相同这些参数的平面波却可以有不同的方向 。如下图所示:
两个不同方向的平面波叠加
类比一维中,幅度和相位可以用一个复数表示,它可以作为我们存储的内容。但是还有两个:一个频率一个方向。这时想到向量是有方向的,也是有长度的。所以我们用一个二维的矩阵的来保存分解之后得到的信息。这个矩阵就是K空间。(一般用k来表示空间频率,单位是1/m)
什么意思呢?就是说一个二维矩阵点 代表这个平面波的法向量,这个向量的模 代表这个平面波的频率 ,这个点里面保存的内容复数就是此平面波的幅度和相位。下面这个图很好的体现了这一点:
也因此K空间的中心对于低频,周围对于高频。如下图,K空间中只有(0,0)处有值,也就是信号都是直流即不存在变化,所以实空间就是一张白纸。
再如下面这个图片,中心低频贡献了图像的主体,周围高频提供图像的细节和边缘。
因此,k空间的每一个位置存储的数代表了所在位置复平面波在图像中占多少成分,我们就可以用每个系数*所代表的平面波相加得到原来的图像,也就是下图。所以k空间和对应图像储存的信息含量是一样的,只不过表现形式不同,或者说基不同。
4.K空间的一些性质
离散的2D-FT
在数字图像中,数据都是离散的。也就涉及到采样的问题,和一维一样,如果采样率过低,k空间就会混叠。同时在k空间中采样过低,图像也会混叠。
FOV和分辨率在k空间和图像中是相反的关系。也就是:
减小kmax,使得图像分辨率下降,减小Δk,使得FOV缩小。
旋转不变性
从平面波的角度很容易理解,旋转没有改变平面波的幅度相位,只是将所有的平面波都旋转了一个角度。下面这个图像显示了二维傅里叶变换中,实空间旋转多少,频率空间也会相应旋转多少。这其实是高维傅里叶变换缩放定理的一种特殊情况。(连续的是可以证明的,离散的涉及插值 ,不一定完全准确)
5.其他
1.因为matlab中的fft算法都是将0放在第一个的,所有写matlab时一定要将k空间fftshift一下使得零频回到k空间中心。
2.简单的应用k空间进行去噪例子。通过去掉明显的k空间的异常峰,可以去除图像中有规律变化的噪声或者伪影。
指纹去噪
天体表面去噪
6、评论及解答
1、始终想不通为啥各个波的叠加能反应出某一个像素点的信号大小
你把它理解向量分解就懂了,平面波就是基,k空间里的数就是基的系数。你得到系数(k空间)的时候就是在投影,变为原向量(图像)就是叠加。只不过这里一个图像是一个向量而已。复平面波叠加时,先经过放大(幅度)在经过移位(相位),相位信息里保留了很多位置信息,可以查看我的另一个回答:
为什么用图像二维傅里叶变换的相位谱进行反变换,能够大致得到原图的形状,而幅度谱则不行呢?
https://www.zhihu.com/question/23718291/answer/1057562032
2、傅里叶变换后图像是关于频率矩形中心对称的,那么对称的4个平面三角波不就是注定了幅值和相角,频率是相等的。那么这样不是说明了任何波都是包含了4个这样对称的三角波,由它们组成?
是中心共轭对称,而没有左右上下的对称。而且只有实数图像的k空间才有这种特点,这是为了将复平面波中的虚部抵消掉,只留下实数部分。复数图像的k空间没有共轭对称的特点。下面是k空间的一部分数据,中心点为(101,101)。
参考:
[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真的不错,大家可以下载看看,里面也有其他的内容)
好消息!
小白学视觉知识星球
开始面向外开放啦
形象理解二维傅里叶变换相关推荐
- matlab极坐标下的二维傅里叶变换_形象理解二维傅里叶变换
公众号关注 "DL-CVer" 设为 "星标",DLCV消息即可送达! 来自 | 知乎 作者 | 阿姆斯特朗 链接 | https://zhuanlan.zh ...
- 形象理解二维码登录原理
之前在极客时间看到一个介绍二维码登录的原理,这里写篇文章记录一下.二维码是我们日常生活中随处可见,支付扫码,登录扫码,添加好友扫码,或者查看某些内容也需要扫码.今天分享一下二维码背后的技术和逻辑,并且 ...
- 【经典算法实现 44】理解二维FFT快速傅里叶变换 及 IFFT快速傅里叶逆变换(迭代法 和 递归法)
[经典算法实现 44]理解二维FFT快速傅里叶变换 及 IFFT快速傅里叶逆变换(迭代法 和 递归法) 一.二维FFTFFTFFT快速傅里叶变换 公式推导 二.二维FFTFFTFFT 及 IFFTIF ...
- 二维傅里叶变换频谱图的直观理解
众所周知:频谱中心代表低频,四周代表高频. 问:那(u,v)一点代表什么? 答: 1.当为水平方向的正弦图片时,二维傅里叶变换后,其只有u方向的频谱值: 2.当为垂直方向的正弦图片是,二维傅里叶变换后 ...
- 二维傅里叶变换是怎么进行的?
1.首先回顾一下一维FT 通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个三角波. 对于一个三角波而言,需要三个参数来确定它:频率,幅度 A ,相位.因此在频域中,一维坐标代表频率,而每个坐标对 ...
- Matlab实现频域滤波——二维傅里叶变换、低通、高通
目录 1.二维傅里叶变换 1.1二维傅里叶变换定义 1.2性质 2.低通滤波器 2.1理想低通滤波器 3.高通 1.二维傅里叶变换 1.1二维傅里叶变换定义 首先通过傅里叶变换将图像从空间域转换为频率 ...
- MATLAB作二维傅里叶变换所需要注意和知道的东西(im2double、fft2、abs、imshow、二维傅里叶变换的物理意义)
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 代码如下,这个代码是实现灰度图像作二维傅里叶变换 ...
- 2维FFT算法实现——基于GPU的基2快速二维傅里叶变换
2维FFT算法实现--基于GPU的基2快速二维傅里叶变换 上篇讲述了一维FFT的GPU实现(FFT算法实现--基于GPU的基2快速傅里叶变换),后来我又由于需要做了一下二维FFT,大概思路如下. 首先 ...
- Matlab:二维傅里叶变换
Matlab:二维傅里叶变换 二维傅里叶变换 二维衍射模式 fft2 函数将二维数据变换为频率空间.例如,您可以变换二维光学掩膜以揭示其衍射模式. 二维傅里叶变换 以下公式定义 m×n 矩阵 X 的离 ...
最新文章
- 一文读懂HttpServletRequest
- iOS: 在代码中使用Autolayout (2) – intrinsicContentSize和Con
- boost::fibers::buffered_channel< std::string >用法的测试程序
- SAP应用真的不性感么
- [机器学习] LightGBM并行计算算子具体实现
- 优秀的开发者从命名开始
- 彻底搞懂四元数(转载)
- 【kafka】kafka 2.3 版本的kafka topic 分区扩容
- kali导入mysql备份_生产环境web站点及mysql数据库备份案例
- 十段均衡器开源 android,音频EQ(均衡器) - osc_1jvmu893的个人空间 - OSCHINA - 中文开源技术交流社区...
- 2口百兆光纤收发器工业导轨式发送机
- Qt 字体大小的计算
- (cf)Codeforces Round #807 (Div. 2)A--C思维题
- 算法三:判断该年该月有几天
- 1024程序员节带你玩转图片Exif信息获取之JavaScript
- 象棋马走日正解判定表实现步数计算
- python中关于时间和日期函数的常用计算总结
- python基础项目 --爬取金山词霸翻译功能
- 【二】[详细]针孔相机模型、相机镜头畸变模型、相机标定与OpenCV实现
- PS打造唯美冷色调照片
热门文章
- 计算机excel实发工资高中低,EXCEL表格中计算实发工资的公式
- 魏兴国:深入浅出DDoS攻击防御
- 国家授时中心 网络服务器时间,中国国家授时中心的时间服务器IP地址及时间同步方法...
- Android混淆、反编译基础教程
- BLDC无刷电机6步换向步骤简述
- 好书整理(to be continued)
- 【Unity】获取免费可商用的中文像素字体
- 便携式计算机的基本知识,使用便携式计算机,错误的做法是()A、非涉密便携机不得存储或处理涉密信息B、涉密便携机需经过保 - 普法考试题库问答...
- skywalking获取traceId(tid)的方式
- 转载:ORA-01034和ORA-27101的解决方法,oracle无法打开解决办法