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

 













 

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6