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.頻譜大小 : 




3.相位角:


4.還原後圖像:







 

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6