Matlab中与滤波相关的函数:imfilter 和fspecial。imfilter完成滤波操作,fspecial用于创建一些预定义的二维滤波器供imfilter调用。
imfilter函数:
函数格式:g=imfilter(f, w, option1, option2,…)
参数说明:
- f是要进行滤波操作的对象;
- w是滤波操作使用的模板 是一个二维数组;
- g是滤波后的输出图像;
- option1、option2是可选项 具体可以包括:
(1)边界选项
合法值 | 含义 |
---|---|
X(X代表一个具体的数字) | 用固定数值X填充虚拟边界,默认为0 |
‘symmetric’ | 填充虚拟边界的内容是通过对靠近原图像边缘的像素关于边缘镜像得到 |
‘replicate’ | 填充虚拟边界的内容总是重复与它最近的边缘像素 |
‘circular’ | 周期性填充虚拟边界的内容(认为原图像具有周期性) |
(2)尺寸选择
合法值 | 含义 |
---|---|
‘same’ | 输出图像g与输入图像f尺寸相同 |
‘full’ | g的尺寸为填充虚拟边界后的f的尺寸,因而大于f的尺寸 |
(3)模式选项:指滤波过程使用卷积还是相关
合法值 | 含义 |
---|---|
‘conv’ | 滤波过程为卷积 |
‘con’ | 滤波过程为相关 |
fspecial创建预定义的二维滤波器
函数格式:h=fspecial(type,parameters)
参数说明:
- type用于指定滤波器的类型,type的一些合法值如下:
合法值 | 功能描述 |
---|---|
‘average’ | 平均模板 |
‘disk’ | 圆形领域的平均模板 |
‘gaussian’ | 高斯模板 |
‘laplacian’ | 拉普拉斯模板 |
‘log’ | 高斯-拉普拉斯模板 |
‘prewitt’ | Prewitt水平边缘检测算子 |
‘’sobel | Sobel水平边缘检测算子 |
- 参数值parameters为可选项,是和所选定type相关的配套参数,未选择则使用默认参数配置;
- 返回值h为特定的滤波器,具体情况说明:
(1)h=special(‘average’,hsize);返回一个大小为hsize的平均模板滤波器h,hsize可以是一个含有两个分量的向量,指明h的行和列的数目;
(2) h=fspecial(‘disk’,radius);返回一个半径为radiu的圆形平均模板;
(3)h=fspecial(‘gaussian’,hsize,sigma);返回一个大小为hsize,σ=sigma的高斯低通滤波器;
来源:CSDN
作者:命z
链接:https://blog.csdn.net/qq_41668547/article/details/104750182