傅里叶变换

2024-06-02 16:04:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一个简单的正弦波图像。逻辑上,这可以通过傅里叶空间图像来实现,该图像在1个实分量(像素)中具有幂,并逐渐改变像素对应的虚分量(相位值)。下面的代码产生了一个水平光栅,它逐渐向下移动。然而,偏移是缓慢的,一旦相位超过某个值,图像就不再具有动画效果。相位分量的单位和范围是什么?我错过了什么?在

import numpy as np, matplotlib as mpimg

f = (np.zeros([33, 33]) + 0j) # blank Fourier image
f[14, 16] = (1 + 0j) # a single component with power

steps = range(16) # number of images to produce
for i in range(len(steps)):
    c = np.fft.ifft2(np.fft.ifftshift(f, axes=[0, 1])) # grating image (cartesian)
    mpimg.imsave('grating %02i.png' % i, c, cmap='gray') # save image
    f[14, 16] += complex(0, 1/16.0) # increment phase

Tags: 代码图像imagefftasnp空间range
1条回答
网友
1楼 · 发布于 2024-06-02 16:04:51

相位分量不仅仅是虚分量。相分量为atan2(Im,Re)。若要线性移动图像,您的增量可能应将此阶段修改为2*pi/nsteps。这意味着它必须同时修改实部和虚部。在

相关问题 更多 >