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 函式庫與主程式,之後便可執行編譯好的程式。

參考資料

l   Periodic Noise Removing Filter

l   Basic Drawing

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1