1. 程式人生 > >Matlab中濾波操作的相關函式

Matlab中濾波操作的相關函式

Matlab中與濾波相關的函式:imfilter 和fspecial。imfilter完成濾波操作,fspecial用於建立一些預定義的二維濾波器供imfilter呼叫。

imfilter函式

函式格式:g=imfilter(f, w, option1, option2,…) 引數說明:

  • f是要進行濾波操作的物件;
  • w是濾波操作使用的模板 是一個二維陣列;
  • g是濾波後的輸出影象;
  • option1、option2是可選項 具體可以包括:

(1)邊界選項

合法值 含義
X(X代表一個具體的數字) 用固定數值X填充虛擬邊界,預設為0
‘symmetric’ 填充虛擬邊界的內容是通過對靠近原影象邊緣的畫素關於邊緣映象得到
‘replicate’ 填充虛擬邊界的內容總是重複與它最近的邊緣畫素
‘circular’ 週期性填充虛擬邊界的內容(認為原影象具有周期性)

(2)尺寸選項

合法值 含義
‘same’ 輸出影象g與輸入影象f尺寸相同
‘full’ g的尺寸為填充虛擬邊界後的f的尺寸,因而大於f的尺寸

(3)模式選項:指濾波過程使用卷積還是相關

合法值 含義
‘conv’ 濾波過程為卷積
‘con’ 濾波過程為相關

fspecial建立預定義的二維濾波器

函式格式:h=fspecial(type,parameters) 引數說明:

  • type用於指定濾波器的型別,type的一些合法值如下:
合法值 功能描述
‘average’ 平均模板
‘disk’ 圓形領域的平均模板
‘guassian’ 高斯模板
‘laplacian’ 拉普拉斯模板
‘log’ 高斯-拉普拉斯模板
‘prewitt’ Prewitt水平邊緣檢測運算元
‘’sobel Sobel水平邊緣檢測運算元
  • 引數值parameters為可選項,是和所選定type相關的配套引數,未選擇則使用預設引數配置;
  • 返回值h為特定的濾波器,具體情況說明: (1)h=special(‘average’,hsize);返回一個大小為hsize的平均模板濾波器h,hsize可以是一個含有兩個分量的向量,指明h的行和列的數目; (2) h=fspecial(‘disk’,radius);返回一個半徑為radiu的圓形平均模板; (3)h=fspecial(‘gaussian’,hsize,sigma);返回一個大小為hsize,σ=sigma的高斯低通濾波器;