Fspecial函數用於創建預定義的濾波算子,其語法格式為:
h = fspecial(type)
h = fspecial(type,parameters,sigma)
參數type制定算子類型,parameters指定相應的參數,具體格式為:
type='average',為均值濾波,參數為n,代表模版尺寸,用向量表示,默認值為[3,3]。
type= 'gaussian',為高斯低通濾波器,參數有兩個,n表示模版尺寸,默認值為[3,3],
sigma表示濾波器的標准差,單位為像素,默認值為 0.5.
type= 'laplacian',為拉普拉斯算子,參數為alpha,用於控制拉普拉斯算子的形狀,取值范圍為[0,1],默認值為0.2。
type= 'log',為拉普拉斯高斯算子,參數有兩個,n為模板尺寸,默認值為[3,3],sigma為濾波器的標准差,單位為像素,默認值為0.5
type= 'prewitt',為prewitt算子,用於邊緣增強,無參數。
type= 'sobel',為著名的sobel算子,用於邊緣提取,無參數。
type= 'unsharp',為對比度增強濾波器,參數alpha用於控制濾波器的形狀,范圍為[0,1],默認值為0.2。
例子:
>> G=fspecial('gaussian',5)%參數為5,表示產生5*5的gaussian矩陣,如果沒有,默認為3*3的矩陣。
G =
0.0000 0.0000 0.0002 0.0000 0.0000
0.0000 0.0113 0.0837 0.0113 0.0000
0.0002 0.0837 0.6187 0.0837 0.0002
0.0000 0.0113 0.0837 0.0113 0.0000
0.0000 0.0000 0.0002 0.0000 0.0000
>> G=fspecial('gaussian',5,1.5)%1.5為濾波器的標准差。
G =
0.0144 0.0281 0.0351 0.0281 0.0144
0.0281 0.0547 0.0683 0.0547 0.0281
0.0351 0.0683 0.0853 0.0683 0.0351
0.0281 0.0547 0.0683 0.0547 0.0281
0.0144 0.0281 0.0351 0.0281 0.0144
>>
>> G=fspecial('average')%默認為3*3的矩陣。均值濾波
G =
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
>> G=fspecial('average',5)%會產生5*5的矩陣。