图像的平滑处理——高斯滤波

高斯滤波器属于线性滤波器;一般来说,使用大小为mn的滤波器对大小为MN的图像进行线性空间滤波,可由下式表示:
在这里插入图片描述
以3*3的的滤波器模板为例,这个公式的含义就是,将相同位置的元素相乘并相加
图1涂

下面介绍w(s,t)的计算方法
首先来看看二维高斯分布的函数:
在这里插入图片描述
假设中心点的坐标是(0,0),那么距离它最近的8个点的坐标如下:
在这里插入图片描述
方差值的大小自行选取,假设取1.5,将(-1,-1)、(-1,0)等依次带入二维高斯分布函数计算得到
在这里插入图片描述
这9个点的权重总和等于0.4787,如果只计算这9个点的加权平均,还必须让它们的权重之和等于1,因此上面9个值还要分别除以0.4787147,得到最终的权重矩阵:
在这里插入图片描述
通过这个矩阵我们可以发现,距离中心点越近,权重值越大,这也跟二维高斯函数图像将相呼应
在这里插入图片描述
有了权重我们就可以带入第一个公式求像素值了。

上面我们有谈到方差大小sigma的选取,那么sigma大小对图像滤波有什么影响呢,在二维高斯函数图形中,sigma越小,分布越集中,
在这里插入图片描述
反映在滤波器中如下表所示:
在这里插入图片描述
下面使用不同sigma进行实验后的程序和结果图:

clear;clc
I=rgb2gray(imread('pic.jpg'));
g=imnoise(I,'gaussian',0.1,0.002); %加入高斯噪声
sigma1 = 0.2;
gausFilter1 = fspecial('gaussian', [3,3], sigma1);
Y1= imfilter(g, gausFilter1, 'replicate');
sigma2 = 0.6;
gausFilter2 = fspecial('gaussian', [3,3], sigma2);
Y2= imfilter(g, gausFilter2, 'replicate');
sigma3 = 1;
gausFilter3 = fspecial('gaussian', [3,3], sigma3);
Y3= imfilter(g, gausFilter3, 'replicate');
subplot(2,2,1),imshow(g),title('加入高斯噪声之后的图象'); %显示加入高斯噪声之后的图象
subplot(2,2,2),imshow(Y1),title('sigma1 = 0.2'); %显示滤波后的图象
subplot(2,2,3),imshow(Y2),title('sigma1 = 0.6'); %显示滤波后的图象
subplot(2,2,4),imshow(Y3),title('sigma1 = 1'); %显示滤波后的图象

在这里插入图片描述
参考博客:https://blog.csdn.net/shanchuan2012/article/details/51024550

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值