天天看點

OpenCV Numpy傅裡葉變換傅裡葉變換逆傅裡葉變換

任何連續的周期信号,可以由一組适當的正弦曲線組合而成 ——傅裡葉

傅裡葉變換

函數 numpy.fft

  • numpy.fft.fft2
  1. 實作傅裡葉變換。
  2. 傳回一個複數數組。
  • numpy.fft.fftshift
  1. 将零頻率分量移到頻譜中心。
    OpenCV Numpy傅裡葉變換傅裡葉變換逆傅裡葉變換
  • 20*np.log(np.abs(fshift))
  1. 設定頻譜的範圍
    OpenCV Numpy傅裡葉變換傅裡葉變換逆傅裡葉變換

示例

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()
           
OpenCV Numpy傅裡葉變換傅裡葉變換逆傅裡葉變換

逆傅裡葉變換

函數numpy.fft.ifft2

  • numpy.fft.ifft2
  1. 實作逆傅裡葉變換,傳回一個複數數組。
  • numpy.fft.ifftshift
  1. fftshift 函數的逆函數。
  • numpy.abs(iimg)
  1. 将複數數組轉換為圖像。

示例

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()
           
OpenCV Numpy傅裡葉變換傅裡葉變換逆傅裡葉變換

繼續閱讀