s1082046 作業 4

 主題: 影像還原練習

附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)

一、 開發環境:

l   Windows 11

l   Visual Studio 2022 C++

l   OpenCV 4.7.0


二、 程式功能:

() 主程式

    Step1: imread()讀入灰階圖片”image4.png”

    Step2: 將圖片resize成適當大小顯示(在此將長寬縮小至原圖的一半)

    Step3: 利用imshow()顯示原圖

    Step4: 用作業3方法,以dft()副程式獲取原圖片頻譜圖,並用dft_shift()副程式重新排列傅立

       葉轉換後圖像象限,使原點位於頻譜圖中心

    Step5: 觀察原圖片頻譜圖,發現除了頻譜中心外,另有6個峰值,在此以滑鼠點選

       setMouseCallback()頻譜圖峰值來獲得峰值所在座標


() 副程式(以陷波濾波概念處理峰值,去除水平雜訊)

    Step1: 獲得滑鼠點選的座標點,利用putText()顯示於頻譜圖上(設定字的大小、粗細、顏

       色),顯示如下圖

    Step2: 利用vector<Point> p 儲存六個峰值點 (p.push_back(Point(x, y)))

    Step3: 6個峰值點選擇完畢,關掉點選視窗(destroyWindow(" "))

    Step4: 設計notch filter,在六個峰值座標畫上黑色實心圓circle()作為遮罩,經過notch filter

        的頻譜如下圖

 Step5: notch filter後的頻譜經過IDFT(作法如作業3),復原去除雜訊之圖像

notch filter後的頻譜

²  去除雜訊後的圖像


²  程式demo







留言

這個網誌中的熱門文章

rzwang Homework #1

s1101438 Homework #1

s1093309 作業6