s1091540 作業3
開發環境: Windows 11 + Visual Studio 2022 + OpenCV 4.7.0(C++) 程式功能: 程式開始執行後,自動依序開啟四個視窗(Gray、Spectrum、Phase、IDFT),手動關閉一個視窗後才會顯示下一個視窗,Gray顯示讀入的灰階圖,Spectrum顯示頻譜大小,Phase顯示相位角度,IDFT顯示還原後圖像,手動關閉第四個視窗後結束程式。 程式片段: Gray: imread( ):以IMREAD_GRAYSCALE讀取圖片 namedWindow( ):開啟Gray視窗 imshow( ):在Gray視窗顯示圖片 waitKey( ):讓視窗維持開啟 Spectrum: getOptimalDFTSize( ):取得最佳圖片大小 copyMakeBorder( ):在圖片的邊界加上0 merge( ):合併兩個通道 dft( ):進行離散傅立葉轉換 split( ):將實部和虛部分成兩個通道 magnitude( ):計算兩個通道的magnitude log( ):將值轉換成對數範圍 normalize( ):將值歸一化成0到1 namedWindow( ):開啟Spectrum視窗 imshow( ):在Spectrum視窗顯示圖片 waitKey( ):讓視窗維持開啟 Phase: phase( ):計算相位角度 normalize( ):將值歸一化成0到1 namedWindow ( ):開啟Phase視窗 imshow( ):在Phase視窗顯示圖片 waitKey( ):讓視窗維持開啟 IDFT: idft( ):進行反向離散傅立葉轉換 split ( ):將實部和虛部分成兩個通道 magnitude( ):計算兩個通道的magnitude normalize( ):將值歸一化成0到1 namedWindow( ):開啟IDFT視窗 imshow( ):在IDFT視窗顯示圖片 waitKey( ):讓視窗維持開啟 執行結果: Gray(原圖) Spectrum (頻譜大小) Phase(相位角度) IDFT(還原後圖像) 執行過程: