s1053314 的作業 3
一、作業要求
撰寫一個程式,讀取一張 256 色灰階圖像。計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
二、原理
傅立葉轉換常用在分析各種濾波器的特性。可以是用2D離散傅立葉轉換分析影像的頻域特性。
實現2D離散傅立葉轉換(DFT)的演算法叫做快速傅立葉轉換(FFT),對影像進行x方向和y方向的傅立葉轉換,會得到影像的頻域表示圖。
直觀來說,一個正弦訊號如果幅度變化很快,可以稱之高頻訊號,如果轉換很慢,可以稱之低頻訊號。在影像中灰階值變化快的位置,可以稱之高頻分量,灰階值變化慢鑿稱之低頻分量。
然而2D傅立葉轉換的一公式為:
反轉換為:
當u=v=0時,反轉換可以實現將頻域圖像恢復成時域圖像:
三、使用環境/語言
四、特殊程式片段註解
- np.fft.fft2() //對訊號進行頻率轉換輸出一個複數陣列,第一個引數為灰階影像,第二個引數為輸出陣列大小
- np.fft.fftshift() //進行移頻操作
- np.abs() //取絕對值,將複數變化成實數
- np.log() //取log,將數據變化成較小的範圍
- np.angle() //取相位
五、環境設置
- 於Anaconda cloud server中搜尋package(cmd輸入:anaconda search opencv)
- 挑選一個符合系統的package(cmd輸入:conda install -c https://conda.anaconda.org/package名稱)
六、執行結果
七、參考資料
沒有留言:
張貼留言