s1083350 作業3

 

主題  離散傅立葉轉換 DFT 練習

一、題目說明

撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖
像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還
原後圖像。

二、開發環境

OS:Windows 10
Editor:Visual Studio Code
Language:Python 3.9.13 
Package:OpenCV - 4.6.0

若無下載matplotlib,請先pip install matplotlib

三、程式碼說明

流程

1.首先做一次傅立葉轉換
2.計算頻譜大小和相位角
3.將頻譜大小和相位角轉換為灰階圖像並顯示
4.進行逆傅立葉轉換,還原原始圖像
5.顯示還原後的圖像

np.fft.fft2() : 進行二維傅立葉轉換,返回頻域的複數
np.abs() : 將複數取絕對值
np.angle() : 取相位角
cv2.normalize() : 將頻譜大小及相位角轉灰階時使用

np.fft.ifftshift() : 逆傅立葉轉換中心化的函數。若是二維數組,它會將數組中心的低頻部分移回到數組的左上角位置,還原圖像時使用
np.fft.ifft2() : 二維逆傅立葉轉換,還原圖像時使用

import matplotlib.pyplot as plt
引用matplotlib中pyplot套件以印出還原後的圖片


四、執行結果

頻譜大小灰階圖像


相位角灰階圖像


還原後的圖像








留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1