s1091536 作業3

 

1.題目說明:

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


2.開發環境:

OS: Windows 11
Editor: PyCharm
Language: python 3.8
Package: OpenCV 4.7.0

 

3.操作:

“python .\hw3_1091536_DFT-cv.py”啟動程式。

一次出現原始影像、相位角度、頻譜大小圖與還原影像

   


 

4.方法及實作:

(a)概念&程式:

讀入影像

img = cv2.imread('image3.png', 0)

對影像開始傅立葉轉換

# Opnecv2傅立葉變換函數

# 需要將影象進行一次float轉換
result = cv2.dft(np.float32(img), ...)
# 將頻譜低頻從左上角移動至中心位置
dft_shift = np.fft.fftshift(result)

                   可視化頻譜圖&相位圖

# 頻譜影象雙連結複數轉換為 0-255 區間

magnitude_spectrum = 20 * np.log(cv2.magnitude(...))
phase = cv2.normalize(cv2.phase(
...), None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)

                      逆向傅立葉轉換,還原影像

# 逆傅立葉變換

ifshift = np.fft.ifftshift(dft_shift)
inv_img = cv2.idft(ifshift)
inv_img = cv2.magnitude(inv_img[:
, :, 0]inv_img[:, :, 1])

 

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6