作業說明:
請撰寫一個程式,讀取一張256色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
(程式利用課本的frequency filter步驟者可得滿分,在網頁中將每個步驟結果呈現出。直接套用opencv函數得一半分數。)
環境:
Ubuntu-20.04
Vim 8.2
CMake 3.16.3
OpenCV 4.2.0
程式功能:
1. imread()讀圖片
2. 用getOptimalDFTSize, copyMakeBorder展開圖片去DFT速度
3. 先設定好實數、虛數的空間,用merge製作multi-channel array
4 . dft進行傅立葉轉換,用split分出planes
5. magnitude, phase進行頻譜大小、相位角度
6. 對圖片進行調整位置
7. normalize至0-1間
8. Imshow、imwrite展示、儲存圖片
GaussBlur
1. 用定義開雙層for迴圈製作kernel
2. 對圖做卷積運算
3. Imshow、imwrite展示、儲存圖片
使用指令:
make ; ./hw4 picture_name.jpg
沒有留言:
張貼留言