- 作業題目:
- 請撰寫一個程式,讀取一張 256 色灰階圖像。
- (1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像 方式呈現出。
- (2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
- 使用環境:
- window 10
- python 3.9
- numpy 1.18.5
- opencv-python 4.4.0.46
- 方法 :
Step1. Input image f(x,y) of size MxN
Step2. Form a zero-padded image fp (x,y) of size PxQ, where P=2xM, Q=2xN
Step3. Multiply fp (x,y) by (−1)^(x+y) to center its transform
Step4. Compute DFT F(u,v) of the image
Step5. 輸出相位跟頻譜
Step6. Generate Gaussian low pass filter in frequency domain and Form the product G(u,v)=F(u,v)H(u,v)
Step7. Idft Obtain the processed image
Step8. Obtain g(x,y) by extracting the M×N region from the lefttop quadrant of gp (x,y)
Step9. Save the smoothed image
- 執行結果:
- 原圖
- 灰階
- 頻譜
- 相位
- 截止半徑(D0) = 30
- D0 = 30 平滑後
- 截止半徑(D0) = 50
- D0 = 50 平滑後
- 截止半徑(D0) = 80
- D0 = 80 平滑後
沒有留言:
張貼留言