s1072026 作業 4
1112 Digital Image Processing Assignment #4
1072026 鄭惠文
作業說明
影像還原練習 附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)。
開發環境
·
Ubuntu 20.04.5
LTS
·
Visual Studio
Code
·
OpenCV 3.4.16
·
C++
實作方式
1. 讀取圖片路徑,並用 imread 讀取 image4
2. 利用作業3學到的傅立葉轉換取得圖片頻域
3. normalize(mag, tmp, 0.0, 255.0, NORM_MINMAX); 與 normalize(mag,
mag, 0.0, 1.0, NORM_MINMAX); 是分別為了輸出成 png 格式與視窗格式而做的 normalize
4. 輸出頻域的圖檔後,利用小畫家取得noise的座標值
5. 將座標紀錄好後,用 drawMask() 畫出黑點遮蓋頻域的noise
6. 將處理好filter H的位置調回對齊原點之前的樣子
7. 之後透過 filter2DFreq(src, filterImg, H); 過濾原圖頻域中的noise,得到一張去除雜訊的圖像
8. 對整體的圖檔做點邊緣的調整
執行結果
原圖
經過傅立葉轉換後得到頻域,觀察到noise在頻域中以規律位置的亮點呈現
取得noise的座標後,用黑色圓點覆蓋,得到notch filter
使用notch filter過濾後
調整圖檔,使得線條較為柔和
環境設定
執行前需安裝以下套件
·
cmake
·
OpenCV 3.4.16
·
libgtk2.0-dev
·
pkg-config
·
xming
o 執行程式時需開啟
·
x11-xserver-utils
如果在 terminal 執行 xhost + 顯示 xhost: unable to open display "",需要設定 export DISPLAY=:0.0,之後執行程式就能顯示視窗。
執行方式
執行 cmake . 產生 makefile,該 makefile 用於編譯主程式時動態連結 OpenCV 函式庫與主程式,之後便可執行編譯好的程式。
留言
張貼留言