作業說明:
請撰寫一個程式,讀取一張256色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
使用環境/語言:
l Windows10
l Visual Studio 2019
l Opencv-4.5.5
l C++
執行/程式說明:
第一題:
1.
輸入檔案位置至input_image
2.
用imread將在input_image的圖片讀入
3.
getOptimalDFTSize取得尺寸
4.
用merge合併且填充
5.
進行傅立葉轉換
=> log(1 + sqrt(Re(DFT(I))^2 + Im(DFT(I))^2))
6.
用magnitude()製作Spectrum magnitude圖
7.
用phase()製作Phase圖
8.
裁剪光譜,如果它有奇數的行或列
9.
使用normalize把值控制在0-1之間
10.
用imshow將圖顯示出來
第二題:
1.
輸入檔案位置至input_image
2.
用imread將在input_image的圖片讀入
3.
用GaussianBlur()生成平滑後圖片
4.
用imshow將圖顯示出來
執行結果:
1.
原圖
2.
Spectrum magnitude
3. Phase
4.
GaussianBlur
沒有留言:
張貼留言