2021年5月2日 星期日

1071503 影像處理作業3

 1.作業說明

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


2. 使用環境

            Anaconda(conda 4.8.3)、Python 3.8.3、OpenCV 4.5.1


3.方法

        imread()讀入圖片(原圖)

        copyMakeBorder()填充一倍高一倍寬的黑色(圖一)

        padding乘上(-1)**(x+y)  (圖二)

        fft.fft2 傅立葉轉換

        fftshift()、np.log、np.abs轉換成頻波圖片顯示(圖三)

        np.angle()轉成相位角

        計算後修改範圍0~255輸出(圖A)

        gaussian lowpass filters (D0值使用3777), 計算結果顯示(圖四)

        (圖五) HF的頻譜

        inverser shift -- ifftshift() 轉回影像(圖六)

        將多餘部分割掉img.real[x起點值:保留x長度,y起點值,保留y長度] 

        real 去除虛數部分
        輸出成品(圖七)

原圖
        

圖一

        

        

        



圖二

圖三

圖四

圖五
圖六
圖七

















圖A

沒有留言:

張貼留言