傅立叶变换将图像分解为其窦道和余弦分量。换句话说,它会将图像从其空间域转换到其频域。这个想法是任何函数可以用无限窦和余弦函数的和来精确地近似。
DFT的性能取决于图像大小。对于数字二,三和五的倍数,图像尺寸趋向于最快。因此,为了获得最大的性能,通常最好将边框值填充到图像以获得具有这种特征的大小。
傅立叶变换用于分析各种滤波器的频率特性。对于图像,使用2D离散傅里叶变换(DFT)找到频域。称为快速傅里叶变换(FFT)的快速算法用于计算DFT。
对于正弦信号,如果振幅在短时间内变化如此之快,可以说它是高频信号。如果缓慢变化,则是低频信号。您可以将相同的想法扩展到图像。在边缘点或噪声方面,我们可以说,边缘和噪声是图像中的高频内容。如果振幅没有太大的变化,则是低频分量。
对于某些阵列大小,DFT计算的性能更好。当数组大小为2时,速度最快。尺寸为2,3和5的乘积的阵列也被非常有效地处理。因此,如果您担心的性能,可以在找到DFT之前将数组的大小修改为任何最佳大小(通过填充零)。
傅里叶变换是用于从时间(例如1维的音频信号)或空间(例如,2维)中的频域到频域的转换的线性变换。
傅立叶变换将图像分解为其窦道和余弦分量。换句话说,它会将图像从其空间域转换到其频域。变换的结果是复数。通过实际图像和复杂图像或通过幅度和相位图像显示这一点。然而,在整个图像处理算法中,只有幅面图像很有趣,因为它包含了我们所需要的关于图像几何结构的所有信息。
DFT的性能取决于图像大小。对于数字二,三和五的倍数,图像尺寸趋向于最快。因此,为了获得最大的性能,通常最好将边框值填充到图像以获得具有这种特征的大小。
傅立叶系数的动态范围太大,不能显示在屏幕上。为了使用灰度值进行可视化,我们可以将我们的线性尺度变换为对数的。
在频域中进行滤波的原因通常是因为在图像(空间)域中执行两个2D傅里叶变换和滤波器的乘积比在卷积上执行的计算速度更快。
一维离散傅里叶变换公式如下:
二维离散傅里叶变换公式如下:
离散傅立叶变换的运行速度与图片的尺寸息息相关。当图像的尺寸是2,3,5的整数倍时,计算速度最快。因此,为了达到快速计算的目的,经常通过添凑新的边缘像素的方法获取最佳图像尺寸。傅立叶变换的结果是复数,这就是说对于每个原图像值,结果是两个图像值。此外,频域值范围远远超过空间值范围,因此至少要将频域储存在float格式中。
DFT要分计算实部和虚部,把要处理的图像作为输入的实部,一个全零的图像作为输入的虚部。一般都会用幅度图像来表示图像傅里叶的变换结果谱)。
图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量;图像的噪声大部分情况下是高频部分;图像大部分平缓的灰度变化部分则为低频分量。也就是说,傅立叶变换提供另外一个角度来观察图像,可以将图像从灰度分布转化到频率分布上来观察图像的特征。
由DFT的性质知,输入为实信号(图像)的时候,频域输出为复数,因此将频域信息分为幅值和相位。频域的幅值高的代表高频分量,幅值低的地方代表低频分量
以上内容整理自网络。
目前fbc_cv库中支持float类型,经测试,与OpenCV3.1结果完全一致。
实现代码dft.hpp:
除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV代码提取:dft函数的实现