【发布时间】:2015-05-29 11:02:46
【问题描述】:
我有一个简单的一维数组,例如 [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0],它描述了一个平方脉冲。我想将这个脉冲转换到频域并使用下面的代码绘制它的幅度谱(我从OpenCV Python Tutorials得到它):
squareimpulse = np.array([0,0,0,0,0,1,1,1,1,1,0,0,0,0,0])
img = (squareimpulse)
f = np.fft.fft(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(img, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
该脚本适用于f = np.fft.fft2(img) 的二维数组,但不适用于我只有一维的情况。
希望我们能解决这个问题。
【问题讨论】:
标签: python arrays opencv numpy fft