2019年5月11日 星期六

s1051541-作業3

一、作業要求:

        請撰寫一個程式,讀取一張 256 色灰階圖像。 計算輸入圖的離散傅立葉轉換結果, 並
        將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。

二、使用環境:

        Windows 10
        Visual Studio 2015
        OpenCV 3.4

三、撰寫架構:
  1. imread():讀取圖片,並轉為灰階圖
  2. copyMakeBorder():拓展原圖邊界,在邊緣增加0
  3. 新增一個二維Mat變數來儲存傅立葉轉換後實部與虛部的值
  4. merge此二維Mat變數並使用dft()進行傅立葉轉換
  5. split():再分離一次產生產生實部與虛部
  6. magnitude():將實部與虛部分別取平方相加並開根號M = \sqrt[2]{ {Re(DFT(I))}^2 + {Im(DFT(I))}^2}
  7. log():M_1 = \log{(1 + M)}
  8. 切割不同區塊並重新排列:
  9. normalize():一般化
  10. imshow():顯示頻譜圖
  11. phase():計算原圖相位
  12. normalize():一般化
  13. imshow():顯示相位圖
四、程式執行結果:

原圖像
頻譜圖


相位圖

沒有留言:

張貼留言