一、作業說明
離散傅立葉轉換 離散傅立葉轉換 離散傅立葉轉換 離散傅立葉轉換 DFT 練習
請撰寫一個程式,讀取張 請撰寫一個程式,讀取張 請撰寫一個程式,讀取張 請撰寫一個程式,讀取張 256 色灰階圖像 色灰階圖像 。
(1) 計算輸入圖的 計算輸入圖的 離散 傅立葉轉換 傅立葉轉換 結果 ,並將頻譜大小與相位角度 並將頻譜大小與相位角度 並將頻譜大小與相位角度 並將頻譜大小與相位角度 各以灰階 256 色圖像 方式呈現 出。
(2) 對圖像 利用 Gaussian Low-Pass filter處理,輸出平滑後圖像(程式利用 課本的 frequency filter步驟者可得滿分 得滿分 !)
二、作業環境&語言
Windows 10 + Python 3.8.5
opencv-python 4.5.1.48 + matplotlib
3.4.1 + numpy 1.20.2
三、方法&步驟
- Input image f(x,y) of size M*N
- Form a zero-padded image fp(x,y) of size P * Q, where P=2 * M, Q=2 * N
- Multiply fp(x,y) by (−1)^(x+y) to center its transform and compute DFT F(u,v) of the image by using cv.dft()
- get the phase by using cv.phase()
- Centered Gaussian Low-Pass filter transfer function H(u,v) of size P×Q, center coordinates :(P/2,Q/2)
- Form the product G(u,v)=F(u,v)H(u,v)
- Do IDFT to G(u,v) and multiplied by (−1)^(x+y) by using cv.idft()
- Obtain g(x,y) by extracting the M×N region from the left-top quadrant of gp(x,y)
五、執行結果
原圖
1.以灰階輸入
2. zero-padded (2 * M, 2 * N)
3.傅立葉轉換後的頻譜
3.傅立葉轉換後的相位角
4. FH的結果
5. 剪裁
沒有留言:
張貼留言