s1091602 作業4
一、題目說明
撰寫一個程式嘗試復原此圖像(將圖中雜 訊去除)。
二、開發環境
Windows 10
Visual Studio 2019
C++
OpenCV 4.6.0
三、程式碼解釋和結果
基本上同作業3的方式查看圖片的頻譜
imread("image4.png", IMREAD_GRAYSCALE); 以灰階讀圖片檔
copyMakeBorder();補零
merge();合併planes
dft( , );傅立葉轉換
split(,);分離實數和虛數
magnitude(, ,);頻譜圖
normalize(, , 0, 1, NORM_MINMAX);歸一化
convertTo(, CV_8U);數據轉換
會發現頻譜中心外有6個峰值,故須先找到峰值座標
setMouseCallback("Spectrogram", mouse_callback, NULL);
之後將6個峰值記錄在陣列中
int cpoint[6][2] = { {394,143},{405,177},{390,212},{409,274},{394,303},{405,336} };
設計notch filter,將六個峰值畫圓,並設為0
circle(, x, y),
r, Scalar(0,
0, 0), -1);
創建notch filter通道,同前面方法儲存實部和虛部,merge()來合併通道
mulSpectrums(, , , 0);將兩個圖的每個點相乘
idft(, ,); //進行 IDFT
四、參考資料
https://blog.csdn.net/gxiaoyaya/article/details/72460483
留言
張貼留言