2022年4月14日 星期四

s1081506 作業4

 作業說明:

        計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。

程式利用課本的frequency filter步驟者可得滿分,在網頁中將每個步驟結果呈現出。直接套用opencv函數得一半分數。 

 

使用環境/語言:

        Windows11

        Visual Studio 2019

        Opencv-4.1.0

        C++

 

實作方法(執行步驟):

        1. 輸入圖片路徑後imread()讀入圖片

        2. Mat.empty()判斷圖片是否存在

        3. 若圖片不存在或發生例外時輸出錯誤訊息並結束程式

        4. 將新尺寸圖片的型態換成CV_32FC1

        5.利用高斯低通濾波器的函數定義,求出高斯低通濾波器

        6.利用dft算出新尺寸的圖片的複數值,然後將複數值拆成實數和虛數

        7.利用magnitude將實數和虛數轉成振幅,再將振幅值轉成對數,用normalize將對數做歸一化

        8.Phas將實數和虛數轉成相位角度值,用normalize將相位角度值做歸一化

        9.multiply將高斯低通濾波器與實數和虛數 互相做卷積,再用merge組成新的複數

        10.idft將複數轉換成新的複數,再用split將新的複數拆成新的實數和虛數

        11.magnitude將實數和虛數轉換成新振幅

        12.normalize將振幅做歸一化,再轉換成原圖的尺寸


實作結果:

        原圖

 頻譜圖

        相位角圖

                

 

        平滑圖

                

    

參考資料:

l   https://blog.csdn.net/cyf15238622067/article/details/87918125

l   https://blog.csdn.net/yuandm819/article/details/79897868

l   https://blog.csdn.net/jerwey/article/details/103991174

l   https://www.twblogs.net/a/5c761cffbd9eee31cea509be

l   https://www.twblogs.net/a/5b820dc82b71772165af693c

l   https://iter01.com/541551.html

沒有留言:

張貼留言