又用python做了FFT看起来结果一致
附上代码,仅供参考
- import numpy as np
- import matplotlib.pyplot as plt
- from matplotlib.colors import LogNorm
- from scipy.fft import fft2, fftshift
-
-
- image = plt.imread('path_to_your_image.jpg')
-
-
- if len(image.shape) == 3:
- image = np.dot(image[...,:3], [0.2989, 0.5870, 0.1140])
-
-
- f = fft2(image)
- fshift = fftshift(f)
-
-
- magnitude_spectrum = 20 * np.log(np.abs(fshift))
-
-
- plt.figure(figsize=(10, 5))
-
-
- plt.subplot(121)
- plt.imshow(magnitude_spectrum, cmap='gray')
- plt.title('Magnitude Spectrum')
- plt.axis('off')
-
-
- plt.subplot(122)
- plt.imshow(np.abs(fshift), cmap='gray')
- plt.title('FFT Shifted')
- plt.axis('off')
-
- plt.show()
|