天天看點

Matlab中fspecial--濾波算子的用法

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的矩陣。

</div>
            </div>
        </article>