1. 作業題目:
請撰寫一個程式,讀取一張 256 色灰階圖像。 計算輸入圖的離散傅立葉轉換結果, 並
將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
2. 環境:
VS2015
opencv 2.4.13
3. 作業解說:
(1) 先使用imread(GRAYSCALE)讀取灰階圖像: Mat src = imread("1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
(2) 使用getOptimalDFTSize()找到最佳的大小,將原圖的邊界擴展至此大小,並用padding以0補充之
(3) 創建planes[],planes[0]儲存圖像實數(目前為圖像本身)、planes[1]儲存圖像虛數(目前為0)
(4) 使用merge(planes,2,complexImg); 將planes[0]和planes[1]的實數與虛數部分皆儲存至complexImg當中
(5) 對complexImg做dft
(6) 使用split將complexImg的實數虛數部分再次分開
(7) 將實數與虛數部分做arctan處理得到圖片的phase angle
(8) 做頻譜轉換,並重新編排將原點移至影像中央以向外做排列
(9) 使用idft得到原圖
沒有留言:
張貼留言