s1091402 作業3

 

題目敘述

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

開發環境

Windows10、Spyder (Python 3.8)、OpenCV 4.7.0

說明

1、讀取圖像並轉為灰階
2、用getOptimalDFTSize得到最適合進行傅里葉變換的圖像大小,然後用copyMakeBorder進行padding,並轉成float32來計算
3、fp(x,y) × (−1)^(x+y) to center the Fourier transform
4、dft() 計算傅立葉轉換,然後用split()將虛數與實數分開

magnitude()計算幅值,並取log乘上20得到振幅
normalize() 標準化,讓圖像以灰階256 色圖像方式呈現,並轉成uint8型態(避免負數)

phase() 計算相位
並同上進行標準化。

idft() 計算還原後圖像
magnitude()計算幅值
並同上進行標準化。



Original

Spectrum

Phase

IDFT

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6