s1091540 作業3

開發環境:

Windows 11 + Visual Studio 2022 + OpenCV 4.7.0(C++)

程式功能:

程式開始執行後,自動依序開啟四個視窗(Gray、Spectrum、Phase、IDFT),手動關閉一個視窗後才會顯示下一個視窗,Gray顯示讀入的灰階圖,Spectrum顯示頻譜大小,Phase顯示相位角度,IDFT顯示還原後圖像,手動關閉第四個視窗後結束程式。

程式片段:

Gray:

  1. imread( ):以IMREAD_GRAYSCALE讀取圖片
  2. namedWindow( ):開啟Gray視窗
  3. imshow( ):在Gray視窗顯示圖片
  4. waitKey( ):讓視窗維持開啟

Spectrum:

  1. getOptimalDFTSize( ):取得最佳圖片大小
  2. copyMakeBorder( ):在圖片的邊界加上0
  3. merge( ):合併兩個通道
  4. dft( ):進行離散傅立葉轉換
  5. split( ):將實部和虛部分成兩個通道
  6. magnitude( ):計算兩個通道的magnitude
  7. log( ):將值轉換成對數範圍
  8. normalize( ):將值歸一化成0到1
  9. namedWindow( ):開啟Spectrum視窗
  10. imshow( ):在Spectrum視窗顯示圖片
  11. waitKey( ):讓視窗維持開啟

Phase:

  1. phase( ):計算相位角度
  2. normalize( ):將值歸一化成0到1
  3. namedWindow ( ):開啟Phase視窗
  4. imshow( ):在Phase視窗顯示圖片
  5. waitKey( ):讓視窗維持開啟

IDFT:

  1. idft( ):進行反向離散傅立葉轉換
  2. split ( ):將實部和虛部分成兩個通道
  3. magnitude( ):計算兩個通道的magnitude
  4. normalize( ):將值歸一化成0到1
  5. namedWindow( ):開啟IDFT視窗
  6. imshow( ):在IDFT視窗顯示圖片
  7. waitKey( ):讓視窗維持開啟

執行結果:

Gray(原圖)

Spectrum(頻譜大小)

Phase(相位角度)

IDFT(還原後圖像)

執行過程:





留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6