任何連續的周期信号,可以由一組适當的正弦曲線組合而成 ——傅裡葉
傅裡葉變換
函數 numpy.fft
- 實作傅裡葉變換。
- 傳回一個複數數組。
- 将零頻率分量移到頻譜中心。
- 20*np.log(np.abs(fshift))
- 設定頻譜的範圍
示例
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('./hanser.jpg',0) #0代表灰階模式
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
result = 20*np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(img,cmap='gray')
plt.title('original'),plt.axis('off')
plt.subplot(122),plt.imshow(result,cmap='gray')
plt.title('result'),plt.axis('off')
plt.show()
逆傅裡葉變換
函數numpy.fft.ifft2
- 實作逆傅裡葉變換,傳回一個複數數組。
- fftshift 函數的逆函數。
- 将複數數組轉換為圖像。
示例
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('./hanser.jpg',0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
ishift = np.fft.ifftshift(fshift)
iimg = np.abs(np.fft.ifft2(ishift))
plt.subplot(121),plt.imshow(img,cmap='gray')
plt.title('original'),plt.axis('off')
plt.subplot(122),plt.imshow(iimg,cmap='gray')
plt.title('iimg'),plt.axis('off')
plt.show()