2021年4月30日 星期五

s1073322 影像處理作業3

 

作業說明

離散傅立葉轉換DFT練習
請撰寫一個程式,讀取一張256色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色方式呈現出。
(2)對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。(程式利用課本的frequency filter步驟者可得滿分!)


開發環境

        Windows 10/cmd/python/openCV 4.5.1

開發原理

        傅立葉/反傅立葉(Fourier):以np.fft.fft2() 快速傅立葉變換得到頻率分佈,再 
        np.fft.fftshift() 函式
        將中心位置轉移至中間,最終通過 Matplotlib顯示效果圖。
        頻譜大小(Magnitude Spectrum):以cv2.dft將輸入影像轉換成 np.float32格式,此時輸
        出的頻譜為一個複數,以cv2.magnitude(x, y, magnitude=None)將傅立葉轉換的雙通道
        結果轉換為0~255的範圍,x為浮點型X座標值,即為實部,y則是虛部浮點型Y座標值。
        Gaussian(Blurred) :以cv2.GaussianBlur(img, (5,5), 0)做轉換。其中(5,5),0表示高斯矩
        陣長寬皆為5,標準差為0,openCV即會根據高斯矩陣自己計算,矩陣尺寸越大,標準差越
        大,其模糊程度就越大
        相位角度(Phase angle):以np.angle直接根據複數的虛部和十部求出角度,默認的角度
        是弧度。
       


圖片

        傅立葉 / 反傅立葉 / Gaussian(Blurred) / 
        頻譜大小(Magnitude Spectrum) / 相位角度(Phase angle)






















沒有留言:

張貼留言