s1093304 作業3
一、作業說明
主題: 離散傅立葉轉換 DFT 練習
撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還原後圖像。
二、開發環境
- Windows 10
- Visual Studio Code 1.76.1
- Python 3.9.15
- OpenCV 4.6.0
三、實作過程
- 首先使用cv2.imread('image3.png', 0),以灰階方式讀取圖像。
- 使用np.fft.fft2()對輸入圖像執行二維傅立葉轉換,並將其結果藉由np.fft.fftshift()進行中心化處理圖二、進行傅立葉轉換
- 使用20 * np.log(np.abs(fshift))計算頻譜大小,得到magnitude_spectrum
- 使用np.angle(fshift)計算頻譜的相位角度,得到phase_spectrum
- 使用cv2.normalize(),將magnitude_spectrum和phase_spectrum進行正規化,轉成0~255 的灰階影像
- 透過cv2.imshow顯示經過正規化後magnitude_spectrum和phase_spectrum的圖
圖一、以灰階方式讀取圖片
- 進行傅立葉反轉換 (np.fft.ifftshift將頻譜移到原點附近 → np.fft.ifft2進行反傅立葉轉換 → np.real再取實數部分)
留言
張貼留言