MATLAB 线性低通滤波器

平均滤波器

平均滤波器是利用fspecial函数中的“平均”选项实现的线性LPF。

平均滤波器(或均值滤波器)是一种算术平均滤波器。其他类型的平均滤波器包括几何平均滤波器,谐波平均滤波器和反谐波平均滤波器。均值滤波器是最简单、应用最广泛的空间平滑滤波器。

平均滤波器对一个mxn滑动窗口进行操作,计算窗口内所有像素值的平均值,并用结果替换目标图像中的中心像素值。


创建平均滤波器

下面给出的命令产生大小为5×7的平均过滤器:


fspecial('average', [5,7])
% 结果
ans =

    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286
    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286
    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286
    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286
    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286    0.0286

应用于图像

对一张qie.jpg的图片应用尺寸为3×3的平均过滤器:


A = imread('E:\MATLAB学习\qie.jpg');    % 读取图片
I = rgb2gray(A);                        % RGB 转灰度
B = fspecial('average',[3,3]);          % 滤波器
C = filter2(B,I);                       % 滤波操作
figure, imshow(I),figure, imshow(C/255) % 显示结果

结果:

原图
3×3的平均滤波器

可以看到,平均滤波器使图像变得模糊,图像中的边缘比原始图像中的清晰。平均滤波器的尺寸越大,模糊效果就越好。下面使用9×9的平均滤波器进行平均滤波的操作:

代码:将上面的[3,3]换成[9,9]即可,其余不变:

 9×9的平均滤波器
9×9的平均滤波器

如上所述,平均滤镜导致图像的模糊效果,与窗口大小成比例。这有助于减少噪声,特别是高斯噪声或均匀噪声。

去除噪声

作为示例,我们向企鹅qie.jpg图像添加椒盐噪声,并使用平均过滤器对其进行过滤。 椒盐噪声会导致图像中非常亮(盐)和非常暗(胡椒)的孤立点。


A = imread('E:\MATLAB学习\qie.jpg');
Noise_snp=imnoise(A,'salt & pepper');
B=rgb2gray(Noise_snp)
imshow(B)
添加椒盐噪声
添加椒盐噪声

% 在上面代码之后
C = fspecial('average', [9,9]);
D = filter2(C,B);
imshow(D/255)
去除椒盐噪声
去除椒盐噪声

到这里,你大概应该对美颜滤镜如何去除痘痘有一些想法了。






公众号

关注公众号,获取一手资讯

“ MATLAB 线性低通滤波器 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注