s1091403 作業4

 1112 Digital Image Processing Assignment #4

主題: 影像還原練習

作業說明:

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

訊去除)


 (原圖)


(復原後影像)

 

開發環境:

Windows10

        Anaconda 3(22.9.0)

        Spyder 5.4.1

Python 3.9

Opencv(4.7.0)

Numpy(1.24.2)

程式片段(程式碼截圖在readme):

使用cv2.imread(file,cv2. cv2.IMREAD_GRAYSCALE)輸入灰階照片,其中cv2.IMREAD_GRAYSCALE能直接把照片轉換成灰階。設定對應的函式回傳的圖片與顯示的視窗,顯示之後按任意鍵會消失。

使用np.fft.fft2()將原影像透過fft得到f,再透過np.fft.fftshift()把中心點移到中心的位置(fshift),再透過np.abs()np.log()取絕對值之後再取log再乘上20得到振福(magnitude_spectrum),最後再使用cv2.normalize()進行規一化,使用cv2.NORM_MINMAX將陣列數直線性縮放到指定的範圍,獲得目標圖片(magnitude_spectrum)



透過cv2.imshow()顯示出當下的振幅圖片(magnitude_spectrum),透過滑鼠點擊標註幾個亮點,標註後會以滑鼠點擊的點為圓心畫出黑色的實心圓形並更新圖片,點擊q或是esc可以退出標註。

magnitude_spectrum當作maskfshift相乘過濾訊號,再使用np.fft.ifftshift()fshift的中心點移回去(notch),再使用np.ifft.fft2()透過ifft轉換回去(iff_img),再透過np.abs()取絕對值(iff_abs),再用cv2.normalize()分進行規一化,使用cv2.NORM_MINMAX將陣列數直線性縮放到指定的範圍 (iff_nor) ,最後再將圖片進行高斯模糊,獲得目標圖片(Result)並輸出。

設定對應的函式回傳的圖片與顯示的視窗,顯示之後按任意鍵會消失。

Demo影片: https://youtu.be/XTe-OPbFetk

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6