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('均值滤波图像');

代码效果:
Matlab中的fspecial函数_第1张图片

fspecial在这里创建了均值滤波的掩模。

你可能感兴趣的:(数字图像处理,matlab)