Image processing 如何以8位格式表示图像的傅里叶变换的幅度?

Image processing 如何以8位格式表示图像的傅里叶变换的幅度?,image-processing,fft,Image Processing,Fft,我已经计算了256色灰度图像的傅里叶变换,但我不确定如何以可见格式表示输出 此矩阵表示原始图像: 0 127 127 195 0 255 255 195 该矩阵表示图像的傅里叶变换: 1154 + 0j -382 + 8j -390 + 0j -382 - 8j -256 + 0j 128 + 128j 0 + 0j 128 - 128j 据我所知,震级可以计算为sqrt((r)^2+(I)^2),其中r是实部,I是虚部。然而,这产生的值超出了可以用8位

我已经计算了256色灰度图像的傅里叶变换,但我不确定如何以可见格式表示输出

此矩阵表示原始图像:

0   127 127 195
0   255 255 195
该矩阵表示图像的傅里叶变换:

1154 + 0j   -382 + 8j   -390 + 0j   -382 - 8j
-256 + 0j    128 + 128j    0 + 0j    128 - 128j

据我所知,震级可以计算为
sqrt((r)^2+(I)^2)
,其中r是实部,I是虚部。然而,这产生的值超出了可以用8位表示的范围。如何更正此问题?

由于频谱的动态范围与原始空间信号的动态范围大不相同,因此使用原始8位格式非常困难。您可以使用log(1+x)缩小范围,然后缩放到8位范围。

通常情况下,取每个复fft结果值的对数幅值(忽略幅值为零的值),然后缩放结果,使最大预期结果为255(缩放因子将取决于2D图像的尺寸和输入增益).

不需要进行任何“校正”,也没有理由认为FFT值应以输入阵列为界。如果需要对其进行修改以便绘制,则只需适当缩放幅值,例如,f/=256*f/max(abs(f))或类似的值。