1.作業說明
請撰寫一個程式,讀取一張256色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
2.開發環境
ios 10.15.7
Visual Studio Code 1.63
OpenCV - 4.5.5
3.實作方法
1.
(1) 運用OpenCV提供之讀取圖片檔函數cv2.imread將圖片讀取進來。
(2) 將圖片Zero Padding成2M*2N的圖 ,並且讓圖維持在左上角。
(3) 讓頻譜置中,將圖的顏色值存入 f(u,v) 再做 DFT 得到 F(u,v)。
(4) 將上述公式取得之實數存放第一個陣列, 虛數存放第二個陣列, 並且計算Spectrum的值和Phase angle的值。
(5) Spectrum不易觀察,故進行log算法,log (1+sqrt(r*r+i*i)), 並將Spectrum和Phase angle 的值域調整至0~255
2. 方法一:
(1) 由上述步驟得到的傅立葉轉換F(u,v),計算 D(u,v) 與H(u,v)。
(2) 再計算G(u,v)=H(u,v)*F(u,v),對G(u,v)做inverse
(3) 將圖片裁切左上角轉回原圖
方法二:
(1)計算Mask
(2)對原圖周圍做Padding
(3)用計算出的Mask對原圖做Convolution
4.執行結果
沒有留言:
張貼留言