2D形状FFT中心为何无法对齐四个中心像素的交点
问题解答
核心原因:傅里叶变换的幅度谱空域平移不变性
傅里叶变换的基础性质明确:空域信号平移Δx、Δy时,频域信号仅会被附加一个线性相位项
exp(-j2π(Δx·u + Δy·v)),该相位项的模恒为1,因此幅度谱不会发生任何变化。
你代码中两种场景仅对圆形做了半个像素的空域平移,且圆形始终完整处于图像范围内、总亮像素数完全一致,因此两种场景的FFT幅度谱本质完全相同,峰值的位置和大小自然不会发生变化。
你的预期偏差来自对FFT坐标约定的误解
- numpy的
fft2输出的频域数组中,零频(DC分量,对应整幅图像的灰度总和)默认位于数组的(0,0)位置,经过fftshift操作后,零频会被固定移动到数组中心。对于偶数长度的数组nPix=1000,中心位置固定为索引(500,500),也就是你观测到的单个像素,这个位置是FFT的坐标约定决定的,和空域图形的位置没有任何关联。 - 零频是全局统计量,仅和整幅图像的总亮度有关,你两种场景下圆形的总像素数完全相等,因此零频的数值也完全相同,永远是幅度谱的最大值。
如何验证平移的实际影响
你可以输出PSF的相位数组np.angle(PSF)对比两种场景的差异,就能看到明显的线性相位变化,这就是空域平移带来的真实频域效应,幅度谱本身不携带任何空域平移信息。
内容的提问来源于stack exchange,提问作者ALC
相关产品推荐
相关产品推荐

