函數 > 圖像處理 > 轉換區域 > 範例:傅立葉轉換域中的濾波
  
範例:傅立葉轉換域中的濾波
使用 funconvmatconvfuncdeconvmatdeconv 函數迴旋積分或反摺積有函數 f 或遮罩 E 的圖像,方法是將此二者在空間頻率 (傅立葉轉換域) 中相乘。在頻域中進行濾波可能會引發各種平滑、邊緣檢測及定期減少雜訊作業,取決於所選函數或遮罩而定。在轉換域中執行濾波,就數學面而言較有效率,或比在圖像域中使用迴旋積分,更容易定義濾波器。
如需使用此範例的資訊,請參閱 <關於圖像處理範例>
funconv
使用此函數在空間頻率中對具有函數的圖像 M 進行濾波。實數函數 f 係用於建構遮罩 N,大小與 M 相同。M 經過傅立葉轉換,再逐項乘以遮罩。
遮罩建構的方法是將引數傳送至 f,此為從 M 左上角出發的正規化距離。此程序會一直繼續至遮罩中心,在該點遮罩會以對稱方式複製四個部份。使用此程序是因為左上角為 DC (零頻)。
1. 定義圖像矩陣 M 以開始建構遮罩。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 求解代表圖像矩陣中心的像素。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
3. 建立代表左上角至圖像中心的值之新值域變數。
按一下以複製此運算式
按一下以複製此運算式
4. 使用已定義的值域變數及遮罩函數,建立遮罩的左上象限。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
(0, 0) 項目是 f(0),而 (r, c) 項目是 f(1)
遮罩建構的方法是將引數 (從 M 左上角的正規化距離) 傳送至 f。此程序會一直繼續至遮罩中心,在該點遮罩會以對稱方式複製四個部份。使用此程序是因為左上角為 DC (零頻)。
5. 使用 funconv 建構其餘的遮罩矩陣。
按一下以複製此運算式
按一下以複製此運算式
若迴旋積分展開圖像刻度,輸出矩陣的刻度可調整至 [0, 255] 值域。
funcdeconv
此反摺積函數採用頻域圖像及頻域函數,再加以反摺積。
funcdeconv e 的最後一個引數,是常式過程中加入所有運算式分母的小項。請為 e 鍵入 0 值,作為起始點。若出現除以零的錯誤訊息,請為 e 鍵入數值小的值。
1. 呼叫 funcdeconv 函數。
按一下以複製此運算式
2. 計算 DE 以檢視 funcdeconv 的結果,並與原始矩陣相較。
按一下以複製此運算式
按一下以複製此運算式
matconv
matconv 函數執行相同的頻域乘法運算,並轉換為 funconv,但它可以輸入遮罩,不能輸入函數。遮罩的大小必須與原始圖像相同。您僅提供遮罩的左上象限。
1. 讀取樣本圖像。
按一下以複製此運算式
2. 計數圖像矩陣中的列數與欄數。
按一下以複製此運算式
按一下以複製此運算式
3. 定義遮罩的維度。
按一下以複製此運算式
按一下以複製此運算式
4. 定義遮罩 C
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
* 
您可對 C 嘗試下列高通濾波器:
按一下以複製此運算式
5. matconv 套用至 RC
按一下以複製此運算式
按一下以複製此運算式
R
C
W
(times.bmp)
(matrix_ii_jj.bmp)
(times_mat.bmp)
matdeconv
使用 matdeconv 恢復原始圖像。因為反摺積可能會使用零強度的元素進行除法,所以將 e 加入每個除法的分母可排除此問題。
按一下以複製此運算式
按一下以複製此運算式
(matdeconv.bmp)
您可實驗其他濾波器函數,請記住遮罩的左上角對應至低頻,而右下角對應至高頻。嘗試不同的圖像。