【Matlab】滤波函数

1. imfilter 多维图像的 N 维滤波

B = imfilter(A,h)
% 使用多维滤波器 h 对多维数组 A 进行滤波。
B = imfilter(A,h,options,...) 
% 根据一个或多个指定的选项执行多维滤波。
选项说明
数值标量,X数组边界之外的输入数组值被赋予值 X。如果未指定填充选项,默认值为 0
‘symmetric’数组边界之外的输入数组值是通过沿数组边界对数组进行镜面反射得到。
‘replicate’数组边界之外的输入数组值假定为等于最近的数组边界值
‘circular’数组边界之外的输入数组值是通过隐式假设输入数组具有周期性来计算的。
‘same’输出数组与输入数组大小相同。这是未指定输出大小选项时的默认行为。
‘full’输出数组是完全滤波后的结果,因此比输入数组大。
‘corr’imfilter 使用相关性执行多维滤波,这与 filter2 执行滤波的方式相同。当未指定相关性或卷积选项时,imfilter 使用相关性。
‘conv’imfilter 使用卷积执行多维滤波。

1.1 卷积滤波

nablaN = imfilter(diff_im,hN,'conv');

1.2 均值滤波

M = 35;   %均值滤波窗口
h = 1/(M*M) * ones(M);
b1 = imfilter(double(I1),double(h),'circular')

2. fspecial 创建预定义的二维滤波器

h = fspecial(type) 
% 创建具有指定 type 的二维滤波器 h。
type 值说明
‘average’平均值滤波器
‘disk’圆形平均值滤波器 (pillbox)
‘gaussian’高斯低通滤波器。不推荐。请改用 imgaussfilt 或 imgaussfilt3。
‘laplacian’逼近二维拉普拉斯算子
‘log’高斯拉普拉斯滤波器
‘motion’逼近照相机的线性运动:运动模糊
‘prewitt’Prewitt 水平边缘强调滤波器
‘sobel’Sobel 水平边缘强调滤波器

3. medfilt2 二维中位数滤波

J = medfilt2(I)
% 对图像 I 执行二维中位数滤波。每个输出像素包含输入图像中对应像素周围 3×3 邻域的中位数值。
N = 3;    %中值滤波窗口   
Med1 = medfilt2(I1, [N N]);
  • 可以去除椒盐噪声
说明
‘zeros’(默认值)用 0 填充图像。
‘symmetric’在边界处对称延伸图像。
‘indexed’如果 I 的类是 double,则用 1 填充图像;否则,用 0 填充。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值