Matlab中的fspecial函数
fspecial函数⽤于创建滤波掩模,其语法格式为: h = fspecial(type)
h = fspecial(type,parameters,sigma)
‘average’,为均值滤波,参数为hsize,代表模版尺⼨,⽤向量表⽰,默认值为[3,3]。 ‘disk’,为圆形区域均值滤波,参数radius代表区域半径,默认值为5
‘gaussian’,为⾼斯低通滤波器,参数有两个,hsize表⽰模版尺⼨,默认值为[3,3],sigma表⽰滤波器的标准差,单位为像素,默认值为 0.5。 ‘laplacian’,为拉普拉斯算⼦,参数为alpha,⽤于控制拉普拉斯算⼦的形状,取值范围为[0,1],默认值为0.2。椒盐噪声
‘log’,为拉普拉斯⾼斯算⼦,参数有两个,hsize表⽰模版尺⼨,默认值为[3,3],sigma为滤波器的标准差,单位为像素,默认值为0.5
‘motion’ 为运动模糊算⼦,有两个参数:len,theta,表⽰摄像物体逆时针⽅向以theta⾓度运动了len个像素,len的默认值为9,theta 的默认值为0
‘prewitt’,为prewitt算⼦,⽤于边缘增强,⽆参数。
‘sobel’,为著名的sobel算⼦,⽤于边缘提取,⽆参数。
‘unsharp’,为对⽐度增强滤波器,参数alpha⽤于控制滤波器的形状,范围为[0,1],默认值为0.2。
调⽤⽰例:
clc;
clear;
close all;
img=imread('d:\Temp\cat.jpg');
subplot(131),imshow(img),title('原图');
img=imnoise(img,'salt & pepper');
subplot(132),imshow(img,[]),title('加⼊椒盐噪声的图像');
psf=fspecial('average',5);
r=imfilter(img,psf);
subplot(133),imshow(r,[]),title('均值滤波图像');
代码效果:
fspecial在这⾥创建了均值滤波的掩模。