问题有点广泛。

这是我所做的:

我有一种应用fft的方法。我不打算发布它,因为无论它是正确还是不正确都不是这里的重点。

我通过该方法运行一幅图像,然后尝试显示出来的结果是两张相同大小的图像,一幅为实部,一幅为虚部。

除了从我的方法中得出的灰度值通常比255大得多之外,这似乎还行得通,因此我不确定所看到的是什么。

然后,我获取原始结果(无论我显示的像素值是多少,因为我假设它们已经过某种修改以适合0到255之间的值),并通过与以前相同的方法运行它,但更改了符号以实现ifft。

然后,我也尝试显示此内容。同样,大多数情况下,原始值远大于255。

我的问题归结为:
a。)我必须对fft进行一些缩放以使其适合0到255之间吗?
b。)进行ifft时是否必须逆转此缩放比例?
c。)在应用ifft之前,我必须在fft上做任何翻译吗?

c部分来自以下事实:我已经阅读了一些有关将fft的角定为中心的内容,但我不确定这是什么意思。

较小的问题(第d部分)是,如果我先将1d fft应用于所有行,然后再次应用于所有列,则将2d fft应用于原始图像,我是否需要以相同顺序应用ifft或我需要撤销订单吗?

我认为目前仅此而已。我一直在寻找答案,但似乎找不到很多,因此对您的帮助表示赞赏。

编辑:我添加了一些图像,也许它们会有所帮助。第一个是原始图像,第二个是我的fft方法(幅度和虚部)的结果,第三个是中间图像上的ifft的结果。

EDIT2:将图像更新为较新的图像。

最佳答案

人们通常觉得分开查看实部和虚部并不是很有用,而是查看幅度,甚至可能是相位,但通常只是幅度。

a)通常,是的,无论您要查看哪个组件,都需要应用缩放比例。图像的总功率与其FFT之间存在比例关系,但各个分量之间没有比例关系。另外,您经常会想做一些事情,例如获取数据日志或忽略零分量等,因此最好是自己进行缩放。

b)在a部分中,您应该进行缩放以实现可视化,并且不要缩放实际的FFT。您应该采用原始FFT的IFFT。

c)根据您的FFT例程,可能需要除以2pi或样本中点的数量,但这取决于FFT例程的工作方式。该文档应该澄清这一点。首先,请看一下开始与结束之间是否存在2pi的因数。

10-06 13:26
查看更多