2022年4月14日 星期四

s1081526 作業4

 1.開發環境:

opencv:4.5.5

windows10

visual studio 2019,c++


2.作業說明:

(1)計算輸入圖的離散傅立葉轉換(DFT)結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

在函式dft2中主要是在做:

1.使用getOptimalDFTSize()和copyMakeBorder()將圖像擴充成適合DFT的尺寸。

2.用merge將plane中存放的實部與虛部合併成一個多通道數組。

3.用dft()做離散傅立葉之後將結果回傳。

回到主程式:

4.將從dft2()得到的回傳結果用split()分開實部和虛部。

5.用magnitude()計算,然後進行對數變換

6.用logArray()將spectrum剪裁為偶數行與偶數列

7.重新排列spectrum的區域,使原點在圖像中心。

8.用normalize歸一化。

這樣就得到頻譜圖了。

相位圖的處理寫在plotPhase()函式裡。

一樣是先用dft2得到mergeArray,用split()分開實部和虛部,然後遍歷做arc tan(虛部/實部),將圖片重新排列成四個象限,最後也用normalize歸一化。

  (2)對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。

使用了GaussianBlur()。




沒有留言:

張貼留言