s1091447 作業4
作業說明 :
附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)。
開發環境:
Windows 11+ Visual Studio 2022 + OpenCV 4.7.0
程式碼說明:
(a) 去除雜訊
先利用作業3取得頻譜圖,利用小畫家塗黑要去除的地方,得到下列圖片,然後利用np.where(),二值化此圖片,從而實現頻譜遮罩的效果。
spectrum.png
再來讀取image4.png,使用二維快速傅立葉轉換,將其轉換為頻譜圖,之後將傅立葉變換後得到的頻譜圖做移位操作,將頻譜圖的原點移至圖像中心,以方便後續的頻率域操作。
將頻譜圖與遮罩進行相乘,從而實現濾波器的效果,之後就和作業3一樣逆傅立葉轉換回去得到去除雜訊的圖片。
(a) 銳化圖片
cv2.convertScaleAbs(),將處理過的圖像轉換為8位無符號整數型別,以便於後續的銳化處理。
np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]]),定義一個3x3的卷積核,用於圖像銳化。
cv2.filter2D(filtered_img_uint8, -1, kernel):對圖像進行卷積運算,以實現銳化的效果。運算時使用的卷積核由上述步驟中定義。-1參數表示輸出圖像數據類型與輸入圖像相同。
留言
張貼留言