一、 实验目的
巩固滤波算法,了解几种不同滤波方式的使用和使用的场合,学会使用MatLab对图像作滤波处理,体会滤波效果,培养处理实际图像的能力。
二、 实验原理与函数说明
fspecial 函数
功能:产生预定义滤波器
格式:H=fspecial(type)
产生一个由 type 指定的二维滤波器 H ,返回的H常与其它滤波器搭配使用,如:
H=fspecial(‘gauss’,n,sigma) 高斯低通滤波器
H=fspecial(‘sobel’) Sobel 水平边缘增强滤波器
H=fspecial(‘prewitt’) Prewitt水平边缘增强滤波器
H=fspecial(‘laplacian’,alpha) 近似二维拉普拉斯滤波器
H=fspecial(‘log’,n,sigma) 高斯拉普拉斯(LoG)运算滤波器
H=fspecial(‘average’,n) 均值滤波器
H=fspecial(‘unsharp’,alpha) 模糊对比增强滤波器
filter2 函数
功能:计算二维线性数字滤波,它与函数fspecial连用
格式1:Y=filter2(B,X)
说明:filter2使用矩阵B中的二维 滤波器对数据X进行滤波,结果Y是通过二维互相关计算出来的,其大小与 X一样。
格式2:Y=filter2(B,X,’shape’)
说明:filter2返回的Y是通过二维互相关计算出来的,其大小由参数 shape确定,其取值如下:
full 返回二维互相关的全部结果,size(Y)>size(X);
same 返回二维互相关结果的中间部分,Y与X大小相同;
valid 返回在二维互相关过程中,未使用边缘补0部分进行计算的结果部分,有 size(Y)<size(X) 。
filter2函数用于图像滤波
i=imread(‘e:w11.tif’);
h=[1,2,1;0,0,0;-1,-2,-1]; %Sobel算子
j=filter2(h,i);
conv2函数 (conv函数(多维卷积))
功能:计算二维卷积。
格式1:C=conv2(A, B)conv2计算矩阵A和B的卷积,若 [Ma,Na]=size(A), [Mb,Nb]=size(B), 则 size(C)=[Ma+Mb-1,Na+Nb-1];
格式2:C=conv2(Hcol, Hrow, A)
说明:矩阵 A分别与Hcol向量在列方向和Hrow向量在行方向上进行卷积;
格式3:C=conv2(…, ′shape′)
说明:用来指定conv2返回二维卷积结果部分,参数shape可取值如下:
full 为缺省值,返回二维卷积的全部结果;
same 返回二维卷积结果中与 A 大小相同的中间部分;
valid 返回在卷积过程中,