Matlab中fspecial的用法

本文介绍了Matlab中fspecial函数,该函数用于创建预定义的滤波算子。文中给出了其语法格式,详细说明了不同type参数(如average、gaussian等)对应的滤波类型、参数含义及默认值,还给出了使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://blog.csdn.net/hustrains/article/details/9153553
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,表示产生55的gaussian矩阵,如果没有,默认为33的矩阵。
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的矩阵。
图像处理代码共享-f_special.m ---------------------------------我是分割线-------------------------------------- h=fspecial%3*3的均值滤波器 h=fspecial%半径为5的圆形平均模板 h=fspecial%5*5,标准差为0.5的高斯低通滤波器 h=fspecial%加强水平边缘的竖直梯度算子 ---------------------------------我是分割线-------------------------------------- I=imread; figure,imshow; h3_5=fspecial; I3_5=imfilter; figure,imshow; h3_18=fspecial; I3_18=imfilter; figure,imshow; h5_8=fspecial; I5_8=imfilter; figure,imshow; imwrite; h7_12=fspecial; I7_12=imfilter; figure,imshow; imwrite; ---------------------------------我是分割线-------------------------------------- f=imread; imshow; w=[0.1 0.1 0.1;0.1 0.1 0.1;0.1 0.1 0.1] w g=imfilter; figure,imshow; ---------------------------------我是分割线-------------------------------------- I=imread; figure,imshow; h=fspecial; I3=imfilter; figure,imshow; h=fspecial; I5=imfilter; figure,imshow; ---------------------------------我是分割线-------------------------------------- %Robert 交叉梯度 I=imread; imshow; w1=[-1 0;0 1]; w2=[0 -1;1 0]; G1=imfilter; G2=imfilter; G=abs abs; figure,imshow; figure,imshow,[]); figure,imshow,[]); ---------------------------------我是分割线-------------------------------------- %三种拉普拉斯模板 I=imread; imshow; I=double; w1=[0 -1 0;-1 4 -1;0 -1 0]; L1=imfilter; w2=[-1 -1 -1;-1 8 -1;-1 -1 -1]; L2=imfilter; figure,imshow,[]); figure,imshow,[]); w3=[1 4 1;4 -20 4;1 4 1]; L3=imfilter; figure,imshow,[]); ---------------------------------我是分割线-------------------------------------- %sobel梯度 I=imread; w1=fspecial; w2=w1'; G1=imfilter; G2=imfilter; G=abs abs; figure,imshow; figure,imshow; figure,imshow; ---------------------------------我是分割线-------------------------------------- I=imread; figure,imshow; Id=double; h_lap=[-1 -1 -1;-1 8 -1;-1 -1 -1]; I_lap=imfilter; figure,imshow),[]); h_log=fspecial; I_log=imfilter; figure,imshow),[]); h_log=fspecial; I_log=imfilter; figure,imshow),[]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值