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’ | 圓形領域的平均模板 |
‘gaussian’ | 高斯模板 |
‘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的高斯低通濾波器;