傅里叶变换
傅里叶变换的定义
傅里叶变换是一个表示图像的不同大小的复指数的总和,频率和阶段。傅里叶变换中起关键作用广泛的图像处理应用程序,包括增强分析、恢复和压缩。
如果f(米,n)是两个离散空间变量的函数米和n,那么二维傅里叶变换的f(米,n)定义的关系吗
的变量ω1和ω2是频率变量;他们的单位弧度/样品。F(ω1,ω2)通常被称为频域的代表f(米,n)。F(ω1,ω2)复值函数是周期都在吗ω1和ω2,以期 。由于周期性的,通常只有范围 会显示出来。请注意,F(0,0)的所有值的总和吗f(米,n)。由于这个原因,F(0,0)通常被称为恒定的组件或直流分量的傅里叶变换。(DC代表直流电;这是一个电气工程术语,指的是一个恒压电源,而不是电源的电压呈现正弦变化。)
变换的逆操作,当上执行转换图像生成的原始图像。是由二维傅里叶反变换
大致说来,这个方程意味着f(米,n)可以表示成一个无限的复指数之和与不同频率(正弦曲线)。贡献的大小和相位的频率(ω1,ω2)是由F(ω1,ω2)。
可视化的傅里叶变换
为了说明这一点,考虑一个函数f(米,n)在一个矩形区域和0 = 1。为了简化图,f(米,n)显示为一个连续函数,即使变量米和n是离散的。
矩形函数
网格图,下图显示了傅里叶变换的大小,
矩形函数的前图所示。级的网格图可视化的傅里叶变换是一种常见的方法。
级一个矩形函数的图像
峰的中心情节F(0,0),这是所有值的总和f(米,n)。情节还显示F(ω1,ω2)有更多的精力在高水平比在高频率垂直频率。这反映了水平横截面的事实f(米,n)窄脉冲,而垂直截面宽脉冲。窄脉冲高频内容比宽脉冲。
另一个常见的可视化的傅里叶变换的方法是显示
作为一个图像,如图所示。
一个矩形的傅里叶变换函数的日志
使用对数有助于地区的傅里叶变换的细节F(ω1,ω2)非常接近0。
其他简单形状的傅里叶变换的例子如下所示。
傅里叶变换的一些简单的形状
离散傅里叶变换
使用傅里叶变换在电脑上通常涉及某种形式的变换称为离散傅里叶变换(DFT)。离散变换是一个变换的输入和输出值是离散的样本,使计算机操作方便。有两个主要原因使用这种形式的转换:
DFT的输入和输出都是离散的,这使得它便于计算机处理。
有一个快速算法计算DFT称为快速傅里叶变换(FFT)。
DFT通常定义为一个离散的函数f(米,n)非零只有在有限的地区 和 。二维米——- - - - - -NDFT和逆米——- - - - - -N给出了DFT的关系
和
的值F(p,问)的DFT系数吗f(米,n)。零频系数,F(0,0),通常被称为“直流分量。”DC is an electrical engineering term that stands for direct current. (Note that matrix indices in MATLAB®总是从1比0;因此,矩阵元素f(1,1)和F(1,1)对应的数学量f(0,0)和F(0,0)分别)。
MATLAB函数fft
,fft2
,fftn
实现快速傅里叶变换DFT算法计算一维,二维DFT, n维DFT,分别。的函数传输线
,ifft2
,ifftn
逆DFT计算。
与傅里叶变换的关系
DFT系数F(p,问)傅里叶变换的样品吗F(ω1,ω2)。
离散傅里叶变换的可视化
构造一个矩阵
f
这类似于函数f(米,n)在这个例子傅里叶变换的定义。记住,f(米,n)矩形区域内等于1和0。使用二进制图像来表示f(米,n)。f = 0 (30、30);在《f(5:24福音》里)= 1;imshow (f,“InitialMagnification”,“适合”)
30-by-30 DFT的计算和可视化
f
这些命令。F = fft2 (F);F2 =日志(abs (F));imshow (F2, [1 - 5],“InitialMagnification”,“适合”);colormap(飞机);colorbar
离散傅里叶变换计算没有填充
这个情节与傅里叶变换中显示不同可视化的傅里叶变换。首先,傅里叶变换的采样粗得多。第二,在左上角显示零频系数代替传统的中间位置。
获得更好的傅里叶变换的采样,加上补零
f
当其DFT计算。补零和DFT计算可以在单步执行这个命令。F = fft2 (256256);
这个命令在
f
之前256 -,- 256计算DFT。imshow(日志(abs (F)), [1 5]);colormap(飞机);colorbar
离散傅里叶变换计算填充
零频系数,然而,仍然是显示在左上角,而不是中心。你可以通过函数来解决这个问题
fftshift
互换的象限F
这中间的零频系数。F = fft2 (256256); F2 = fftshift (F);imshow(日志(abs (F2)), [1 5]);colormap(飞机);colorbar
结果图中所示的相同可视化的傅里叶变换。
傅里叶变换的应用
本节提出的许多图像processing-related应用傅里叶变换。
线性滤波器的频率响应
傅里叶变换的线性滤波器的脉冲响应滤波器的频率响应。这个函数freqz2
计算并显示一个滤波器的频率响应。高斯卷积核的频率响应表明,这种滤波器将低频和减弱高频。
h = fspecial(“高斯”);freqz2 (h)
高斯滤波器的频率响应
看到设计线性滤波器在频域更多信息关于线性过滤,过滤设计,和频率响应。
使用傅里叶变换执行快速卷积
这个例子展示了如何执行快两个矩阵使用傅里叶变换的卷积。傅里叶变换的一个关键属性是乘法的两个傅里叶变换的卷积对应于空间函数相关联。这个属性,以及快速傅里叶变换,形成快速卷积算法的基础。
注意:FFT-based卷积方法通常是用于大型输入。对于小的输入通常更快的使用imfilter
函数。
创建两个简单的矩阵,一个
和B
。一个
是一个m×n矩阵和B
是一个P-by-Q矩阵。
一个=魔法(3);B = 1 (3);
在一个
和B
所以他们至少(M + p - 1)——- (N + q1)。(通常是一个
和B
在一个尺寸是2的幂,因为吗fft2
这些尺寸是最快。)这个例子垫8-by-8的矩阵。
(8)= 0;8 B(8日)= 0;
计算的二维DFT一个
和B
使用fft2
函数。用两个阶和计算的二维DFT结果使用ifft2
函数。
C = ifft2 (fft2 (A)。* fft2 (B));
提取的非零部分结果和删除舍入误差造成的虚部。
C = C (1:5, 1:5);C =实际(C)
C =5×58.0000 9.0000 15.0000 7.0000 6.0000 11.0000 17.0000 30.0000 19.0000 13.0000 15.0000 30.0000 45.0000 30.0000 15.0000 7.0000 21.0000 30.0000 23.0000 9.0000 4.0000 13.0000 15.0000 11.0000 2.0000
执行FFT-Based相关定位图像的特性
这个例子展示了如何使用傅里叶变换进行关联,这是卷积密切相关。相关性可以用来定位功能在一个图像。在这种情况下,相关性通常被称为模板匹配。
读一个示例图像到工作区中。
bw = imread (“text.png”);
创建一个模板匹配的从图像中提取字母“a”。请注意,您还可以创建模板使用的互动语法imcrop
函数。
= bw (32:45 88:98);
计算相关的模板图像与原图像的模板映像旋转180度,然后利用FFT-based卷积技术。(如果你旋转卷积等价于相关卷积内核通过180度。)匹配模板图像,使用fft2
和ifft2
功能。在结果图像,明亮的峰值对应出现的这封信。
C =实际(ifft2 (fft2 (bw)。* fft2 (rot90 (a, 2), 256256)));图imshow (C, [])%规模图像到适当的显示范围。
查看图像中模板的位置,找到最大像素值,然后定义一个阈值,小于这个最大值。阈值图像显示的位置这些山峰白色斑点图像阈值的相关性。(使位置更容易看到这图,这个例子详述阈值图像放大点的大小。)
马克斯(C (:))
ans = 68
打= 60;%使用阈值略小于最大。D = C >打;se = strel (“磁盘”5);E = imdilate (D, se);图imshow (E)%显示像素值超过阈值。