空间域滤波:imfilter(),fspecial()
执行操作滤波需要注意边界问题,因此,给出了边界处理方法:
- 收缩处理范围
- 使用常数填充图像
- 使用复制像素的方法填充
h = fspecial( type , parameters ); %fspecial() 创建预定义的二维滤波器
g=imfilter( Img, w, option1,option2,... ); %imfilter () 完成滤波操作
下面结合一些代表性的说明:fspecial()
(1)h = fspecial ('average', hsize);返回一个大小为hsize的平均模板滤波器h。hsize行和列默认为[3,3]。
(2)h = fspecial ('disk', radius);返回一个半径为radius的圆形平均模板。h为(2*radius+1)*(2*radius+1)的方阵,radius默认为5。
(3)h = fspecial ('gassuan', hsize, sigma);返回一个大小为hsize,标准差为sigma的高斯低通滤波器。hsize默认[3,3],sigma默认为0.5。
(4)h = fspecial ('sobel');返回一个加强水平边缘的竖直梯度算子:
h = [1 2 1
0 0 0
-1 -2 -1]
如果需要检测竖直边缘,使用H’。
g=imfilter( Img, w, option1,option2,... ); %imfilter () 完成滤波操作
%w- 滤波操作使用的模板