作業題目:
請撰寫一個程式,讀取一張 256 色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像 方式呈現出。
(2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
使用環境:
- Windows 10
- Python 3.9.2
- opencv-python 4.4.0
- numpy 1.20.1
實作方法:
1. Input image f(x,y) of size M*N 2. Form a zero-padded image fp(x,y) of size P*Q, where P=2*M, Q=2*N 3. Compute DFT F(u,v) of the image
4.Generate the magnitude_spectrum
5.Generate the phase_spectrum
5.Generate the phase_spectrum
6. Generate a real, symmetric filter function H(u,v) of size P×Q with center coordinates (P/2, Q/2). Form the product G(u,v)=F(u,v)H(u,v) 7. Obtain the processed image 8. Obtain g(x,y) by extracting the M×N region from the left-top quadrant of gp(x,y)
執行結果:
由左至右,由上至下
1.Gray Image
2.將圖片大小變為2倍並置於左上角
3.傅立葉轉換過後的結果
4.移至中心點後進行magnitude spectrum
5.進行phase spectrum
6.進行GLPF(D0=5)
7.GLPF(D0=30)
8.GLPF(D0=80)
9.將結果反轉回來為原圖
沒有留言:
張貼留言