s1081629 作業3
一、作業主題: 離散傅立葉轉換 DFT 練習
撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖 像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還 原後圖像。
二、開發環境:
OS: Windows 10
Visual Studio Code
Python 3.11.2
opencv-4.7.0.72
numpy 1.24.2
三、實作辦法:
Step1 . 將圖片使用 cv.imread()函式讀入,並用IMREAD_GRAYSCALE以灰階模式存取。
Step2. 使用np.fft.fft2() 函式對原圖片進行傅立葉轉換,並將轉換後的頻率分量移至頻譜中心。
Step3. 使用np.log計算出頻譜大小的絕對值。
Step4. 使用np.angle計算出相位角大小。
Step5. 對移至頻譜中心的頻率分量使用 np.fft.ifftshirft() 以及 np.fft.ifft2() 函式還原出原本的圖像。
Step6. 對上述求出的三個矩陣使用 cv.normalize() 使色階轉化成0~255的範圍以便輸出。
四、實作結果:
1.原先圖像 :
2.頻譜大小 :
留言
張貼留言