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

--------------------------------------------------------------------------------------------------------------

Matlab 的fspecial函数用法

fspecial 函数用于建立预定义滤波算子,其语法格式为:
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 be a vector specifying the number of rows and columns in


H or a scalar, in which 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) within the square matrix of side 2*RADIUS+1.


The default RADIUS is 5.

3 'gaussian'
Gaussian lowpass filte
r

为高斯低通滤波,有两个参数, hsize 表示模板尺寸,默认值为【 3 3 】, sigma 滤波器的标准值,单位为像素,默认值为 0.5.
H = FSPECIAL('gaussian',HSIZE,SIGMA) returns a rotationally

symmetric Gaussian lowpass filter
of size HSIZE with standard


deviation SIGMA (positive). HSIZE can be a vector specifying the


number of rows and columns 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 Laplacian operator
为拉普拉斯算子,参数 alpha 用于控制算子形状,取值范围为【 0 1 】,默认值为 0.2.

H = FSPECIAL('laplacian',ALPHA) returns a 3-by-3 filter


approximating the shape of the two-dimensional Laplacian


operator. The parameter ALPHA controls the shape of the


Laplacian and must be in the range 0.0 to 1.0.


The default ALPHA is 0.2.

5 'log'
Laplacian of Gaussian 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 or a 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 an image, the linear motion of a camera by LEN pixels,


with an angle of THETA degrees in a counter-clockwise direction. The


filter becomes a vector for horizontal and vertical motions.
The


default LEN is 9, the default THETA is 0, which corresponds to a


horizontal motion of 9 pixels.

7 'prewitt'
Prewitt horizontal edge-emphasizing filter

用于边缘增强,大小为【 3 3 】,无参数
H = FSPECIAL('prewitt') returns 3-by-3 filter that emphasizes

horizontal edges by approximating a vertical gradient. If you need to


emphasize vertical edges, transpose the filter H: H'.



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

8 'sobel'
Sobel horizontal edge-emphasizing filter

用于边缘提取,无参数
H = FSPECIAL('sobel') returns 3-by-3 filter that emphasizes

horizontal edges utilizing 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 contrast enhancement 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 the Laplacian filter with parameter ALPHA. ALPHA controls


the shape of the Laplacian and must be in the range 0.0 to 1.0.


The default ALPHA is 0.2.

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值