[图像处理][Matlab] fspecial函数详解

fspecial函数

功能:用于建立预定义的滤波算子,或者说产生预定义滤波器

说明:对于形式H=fspecial(type) ,fspecial 函数产生一个由 type 指定的二维滤波器 H ,返回的 H 常与其它滤波器搭配使用。

语法格式为:  

h = fspecial(type)  

h = fspecial(type,para)


其中type指定算子的类型,para指定相应的参数;

type的类型有

1、'average'(均值滤波器

averaging filter为均值滤波,参数为hsize代表模板尺寸,默认值为[3,3]。

H =FSPECIAL('average',HSIZE) returns an averaging filter H of size HSIZE. HSIZE can bea vector specifying the number of rows and columns in H or a scalar, inwhich case H is a square matrix.  

The default HSIZE is [3 3].

 2、 'disk'
circular averaging filter 为圆形区域均值滤波,参数为radius代表区域半径,默认值为5.  

H =FSPECIAL('disk',RADIUS) returns a circular averaging filter (pillbox) withinthe square matrix of side 2*RADIUS+1.

 The default RADIUS is 5.

 3'gaussian' 高斯低通滤波器

Gaussian lowpassfilter 为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准差,单位为像素,默认值为0.5.

H =FSPECIAL('gaussian',HSIZE,SIGMA) returns a rotationally symmetric Gaussianlowpass filter of size HSIZE with standard deviation SIGMA(positive). HSIZE can be a vector specifying the number of rows andcolumns in H or a scalar, in which case H is a square matrix. 

The default HSIZE is [3 3], the default SIGMA is 0.5.

 4、'laplacian' (近似二维拉普拉斯运算滤波器

 filter approximating the 2-D Laplacianoperator 为拉普拉斯算子,参数alpha用于控制算子形状,取值范围为[0,1],默认值为0.2.

H = FSPECIAL('laplacian',ALPHA) returns a3-by-3 filter approximating theshape of the two-dimensional Laplacian operator. Theparameter ALPHA controls the shape of the Laplacian and mustbe in the range 0.0 to 1.0.

 The default ALPHA is 0.2.

 5'log' (高斯拉普拉斯(LoG)运算滤波器 )
Laplacian ofGaussian filter 为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma
为滤波器的标准差,单位为像素,默认值为0.5.  

H = FSPECIAL('log',HSIZE,SIGMA) returns a rotationally symmetric Laplacian of Gaussian filter of size HSIZE with standard deviation SIGMA (positive). HSIZE can be a vector specifying the number of rows and columns in H ora scalar, in which case H is a square matrix. 

The default HSIZE is [5 5], the default SIGMA is 0.5.

 6'motion'

motion filter 为运动模糊算子,有两个参数,表示摄像物体逆时针方向以theta角度运动了len个像素,len的默认值为9,theta的默认值为0;  

H = FSPECIAL('motion',LEN,THETA) returns a filter to approximate, once convolved with animage, the linear motion of a camera by LEN pixels, with an angle of THETA degrees in a counter-clockwise direction. The filter becomes avector for horizontal and vertical motions. 

The default LEN is 9,the default THETA is 0, which corresponds to a horizontal motionof 9 pixels.

 7'prewitt' (Prewitt 水平边缘增强滤波器
Prewitt horizontaledge-emphasizing filter 用于边缘增强,大小为[3 3],无参数  

H = FSPECIAL('prewitt') returns 3-by-3 filter that emphasizes horizontal edges byapproximating a vertical gradient. If you need to emphasize verticaledges, transpose the filter H: H'.

 [1 1 1;0 0 0;-1 -1-1].

 8'sobel' (Sobel 水平边缘增强滤波器
Sobel horizontaledge-emphasizing filter 用于边缘提取,无参数 

H = FSPECIAL('sobel') returns 3-by-3 filterthat emphasizes horizontal edgesutilizing the smoothing effect by approximating a vertical gradient.If you need to emphasize vertical edges, transpose the filter H: H'.

 [1 2 1;0 0 0;-1 -2-1].

 9'unsharp'
unsharp contrastenhancement filter 为对比度增强滤波器。参数alpha用于控制滤波器的形状,范围为[0,1]
,默认值为0.2.  

H = FSPECIAL('unsharp',ALPHA) returns a 3-by-3 unsharp contrast enhancement filter.FSPECIAL creates the unsharp filter from the negative of theLaplacian filter with parameter ALPHA. ALPHA controls the shape of theLaplacian and must be in the range 0.0 to 1.0.

The default ALPHA is 0.2.

Example:

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

G =

     0.0400   0.0400    0.0400    0.0400   0.0400

    0.0400   0.0400    0.0400    0.0400   0.0400

    0.0400   0.0400    0.0400    0.0400   0.0400

    0.0400   0.0400    0.0400    0.0400   0.0400

    0.0400   0.0400    0.0400    0.0400   0.0400

 

参考文献:http://www.cnblogs.com/wuxinrui/archive/2011/04/14/2015979.html

https://www.cnblogs.com/rong86/p/3560114.html


你可能感兴趣的:(Matlab,图像处理,Matlab)