2021年5月2日 星期日

s1073311 影像處理作業 3

 作業說明

請撰寫一個程式,讀取一張 256 色灰階圖像。

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

(2) 對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的frequency filter 步驟者可得滿分!)

操作環境


macOS Big Sur

終端機

Python 3.7.3 / openCV 4.5.1


方法


第一部分:


1.用cv2.imread()讀取圖片

2.用np.fft.fft2()得到頻率(複數)

3.用np.fft.fftshift()把0頻率移至中心

4.將頻率取絕對值,再取對數得到magnitude

5.用np.angle()求相位角

6.用plt.savefig()輸出magnitude,angle


第二部分:

1.用cv2.dft()得到雙通道的頻率

2.用np.fft.fftshift()把0頻率移至中心

3.製作一個與原圖同大小的遮罩,中心點x,y軸正負60設為1,其餘為0

4.頻率x遮罩,保留低頻率的值

5.用np.fft.iffshift()將0頻率移回左上角

6.用cv2.idft()將頻率轉回圖片

7.用cv2.magnitude()合併時數和虛數

8.用plt.savefig()輸出圖片


結果:

    

1. 原圖 



        2. Magnitude 

3. 相位角 

                    


4. Gaussian low_pass filter 

        



沒有留言:

張貼留言