import cv2
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
img = cv2.imread('lena.jpg',0) #画像読込
f = np.fft.fft2(img) #2D FFT
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()