文章目录结构

  • 1. 高斯模糊介绍
  • 2. 高斯模糊原理
  • 2.1 矩阵范围的像素平均值
  • 2.2 正态分布的权重
  • 3. 计算高斯模糊




1. 高斯模糊介绍

高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。由于高斯函数的傅立叶变换是另外一个高斯函数,所以高斯模糊对于图像来说就是一个低通滤波器。

2. 高斯模糊原理

2.1 矩阵范围的像素平均值

“模糊”,就是将图像中每个像素值进行重置的过程,这个过程采用将每一个像素都设置成周边像素的平均值。

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_android 透明颜色模拟高斯模糊值


上图中,2是中间点,周边点都是1。假设周边的点对中间点的影响都是相同的,即构造的卷积算子如下:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_高斯模糊_02


然后计算求和:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_高斯模糊_03


将图中‘2’置为:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_图像处理_04


“中间点"取"周围点"的平均值,变成10/9。在数值上,这是一种"平滑化”。在图形上,就相当于产生"模糊"效果,"中间点"失去细节。

显然,计算平均值时,取值范围越大,"模糊效果"越强烈。如下三幅图,分别表示原图,3X3和5X5的模糊效果图。

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_图像处理_05


android 透明颜色模拟高斯模糊值 透明高斯模糊图片_android 透明颜色模拟高斯模糊值_06


android 透明颜色模拟高斯模糊值 透明高斯模糊图片_android 透明颜色模拟高斯模糊值_07


接下来的问题就是,既然每个点都要取周边像素的平均值,那么应该如何分配权重呢?

如果使用简单平均,显然不是很合理,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。

2.2 正态分布的权重

正态分布显然是一种可取的权重分配模式。

在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。

计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。

高斯函数

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_正态分布_08


正态分布的密度函数叫做"高斯函数"(Gaussian function)。它的一维形式是:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_android 透明颜色模拟高斯模糊值_09


其中,μ是x的均值,σ是x的方差。因为计算平均值的时候,中心点就是原点,所以μ等于0。

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_权重_10


上面的正态分布是一维的,图像都是二维的,所以我们需要二维的正态分布。

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_权重_11


android 透明颜色模拟高斯模糊值 透明高斯模糊图片_正态分布_12


有了这个函数 ,就可以计算每个点的权重了。

权重矩阵:

假定中心点的坐标是(0,0),那么距离它最近的8个点的坐标如下:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_图像处理_13


更远的点以此类推。

为了计算权重矩阵,需要设定σ的值。假定σ=1.5(σ值越大图像越平滑/模糊),则模糊半径为1的权重矩阵如下:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_权重_14


这9个点的权重总和等于0.4787147,如果只计算这9个点的加权平均,还必须让它们的权重之和等于1,因此上面9个值还要分别除以0.4787147,得到最终的权重矩阵

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_高斯模糊_15

3. 计算高斯模糊

有了权重矩阵,就可以计算高斯模糊的值了。假设现有9个像素点,灰度值(0-255)如下:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_图像处理_16


每个点乘以自己的权重值:

android 透明颜色模拟高斯模糊值 透明高斯模糊图片_高斯模糊_17


将这9个值加起来,就是中心点的高斯模糊的值。

对所有点重复这个过程,就得到了高斯模糊后的图像。如果原图是彩色图片,可以对RGB三个通道分别做高斯模糊。

参考文章:https://baike.baidu.com/item/高斯模糊/10885810?fr=aladdinhttps://www.jianshu.com/p/302a895c12dd图像处理系列笔记: