高斯模糊/高斯滤波

通常,图像处理软件会提供模糊滤镜,使图片产生模糊效果。

模糊的算法有很多,其中有一种叫高斯模糊(Gaussian Blur),它将正态分布用于图像处理。
文本介绍了高斯模糊的算法,你会看到这是一个非常简单易懂的算法。本质上,它是一种数据平滑技术(data smoothing),适用于多个场合,图像处理恰好提供了一个直观的应用实例。

高斯模糊的原理

所谓模糊,可以理解成每一个像素都取周边像素的平均值。

上图中,2是中间点,周边点都是1.

中间点取周围点的平均值之后,就会从2变成了1.在数值上,这是一种平滑化。在图形上,就相当于产生模糊的效果,中间点失去了细节。

显然计算平均值时,取值范围越大,模糊效果越强烈。

上面分别是原图、模糊半径3像素,模糊半径10像素的效果。模糊半径越大,图像就越模糊。从数值角度来看,就是数值越平滑。

接下来的问题是,既然每个点都要取周边像素的平均值,那么该如何分配权重呢?
如果使用简单平均,显然是不合理的,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系就越疏远。因此,加权平均更合理,距离越近的点,权重就越大,距离越远的点,权重就越小。

正态分布的权重

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

在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。
计算平均值的时候,我们只需要将中心点作为原点,其他点按照其在正态曲线上的位置,分配权重就可以得到一个加权平均值。

高斯函数

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

正态分布的密度函数叫做高斯函数,下面是一维高斯函数的公式:

G ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 G(x)=\frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}} G(x)=2π ​σ1​e−2σ2(x−μ)2​

其中, μ \mu μ 是x的均值,σ是x的方差。因为计算平均值的时候,中心店是原点,因此均值等于0。

G ( x ) = 1 2 π σ e − x 2 2 σ 2 G(x)=\frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{x^{2}}{2\sigma^{2}}} G(x)=2π ​σ1​e−2σ2x2​

根据一维高斯函数,可以推导得到二维高斯函数:

G ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 G(x,y)=\frac{1}{2\pi \sigma^{2}}e^{-\frac{x^{2}+y^{2}}{2\sigma^{2}}} G(x,y)=2πσ21​e−2σ2x2+y2​

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

权重矩阵

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

更远的同理计算方法。

为了计算权重矩阵,需要设置σ的值。假定σ=1.5,则模糊半径为1的权重矩阵如下:

这9个点的权重总和等于0.47877147,如果只计算这9个点的加权平均,还必须让他们的之和等于1,因此上面的9个值还要分别除以0.47877147,得到最终的权重矩阵(除以0.47877147会将每个数都进行调整,保证相加为1)

计算结果:

计算高斯模糊

我们计算得到了权重矩阵,就可以根据它来计算高斯模糊的值了。

举例:
假设有9个像素点,灰度值(0-255)如下:

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

计算得到:

最后我们将这个9个值加起来,就是中心点的高斯模糊值了(加权和)。
对所有点重复这个过程,就得到了高斯模糊处理后的图像,如果原图是彩色图片,我们要对RGB三个通道分别进行高斯模糊处理。

边界点处理

如果一个点处于边界,周边没有足够的点,该怎么办?

我们可以将该边界和另一侧对应的边界进行拼接,来模拟出一个完整的矩阵。同样也可以进行对称复制来得到一个矩阵。

文章内容参考:click here 这里我对缺失的公式进行了补充。

高斯模糊(高斯滤波)原理以及计算过程相关推荐

  1. python高斯滤波和降噪_高斯滤波原理及python实现

    高斯滤波器时一种线性平滑滤波器,主要适用处理高斯噪声,所以在了解高斯滤波之前,我们首先熟悉一下高斯噪声.噪声在图像中表现的通常是引起视觉效果的孤立像素点和像素块,简单说噪声点就是会给图像带来干扰,让图 ...

  2. 一文搞懂H264量化原理以及计算过程

    1.概述 量化是使数据比特率下降的有效工具.量化过程的输入值动态范围很大,需要较多的比特才能表示一个数值,量化后的输出则只需要较小比特表示. 量化是不可逆过程,处理过程中有信息丢失,存在量化误差. H ...

  3. 梯度下降算法原理及其计算过程

    1.写在前面 还记得以前刚开始学习AI的时候,遇到了梯度下降算法,一直对很多概念搞不清楚,包括后来很长的一段时间也不是很明白梯度下降的实现原理,看了很多博客文章都是一知半解,总是有很多疑惑不能搞清楚, ...

  4. 和时间赛跑之优化高斯金字塔建立的计算过程

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/10263676.html   ...

  5. conv2d原理、计算过程、pytorch使用

    文章目录 conv2d 卷积过程 单通道 三(多)通道 多个输出通道(**即改变输出通道**) 对应代码 [学习于刘二大大视频:https://www.bilibili.com/video/BV1Y7 ...

  6. 高斯图像滤波原理及其编程离散化实现方法

    本文主要根据作者的理解整理而来,有什么错误之处,请大家共同讨论指出. 1.图像滤波 在三维计算机视觉领域,通常对于二维图像的特征抽取是很关键的第一步,这主要包括抽取二维图像上的边缘.角点.纹理等.通常 ...

  7. 中值滤波与高斯滤波的原理和应用场合

    中值滤波属于非线性滤波的一种,高斯滤波属于线性滤波的一种.在Opencv中有高斯滤波的函数,但是中值滤波需要通过排序实现. 一.中值滤波 原理:中值滤波使用一个围绕当前像素的矩形,查找区域内像素的中值 ...

  8. 《OpenCv视觉之眼》Python图像处理五 :Opencv图像去噪处理之均值滤波、方框滤波、中值滤波和高斯滤波

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  9. 卷积滤波 英文_图像的卷积(滤波)运算(二)——高斯滤波

    1.高斯滤波原理 根据数学知识,一维高斯函数可以描述为: 在图像处理中,选定X方向上长度为3的窗口,令δ=1,中心坐标为1,由上述公式,其卷积核(Xa,X,Xb)可以如下计算: Xa = exp(-1 ...

最新文章

  1. javascript控件(二):一个好用的表格(分页实例)
  2. nrf52832 DFU详细步骤 SDK13
  3. Angular 自定义 structural 指令的一个例子
  4. WordPress: 通过数据库(phpMyAdmin)添加admin用户
  5. 一图看懂软件缺陷检查涉及的内容
  6. js过滤时间方法,几分钟前,1小时前
  7. 图像处理实战-Python编程进阶
  8. css分页实例讲解,CSS 分页实例
  9. 2.2TextCNN
  10. webpack入坑之旅(一)入门安装
  11. 计算机应用基础试卷分析报告,计算机应用基础试卷分析.pdf
  12. 组装笔记本计算机,老笔记本DIY 不到100元就可改装一体机
  13. 教师对php作品评语通用,期末教师给学生的评语
  14. 用数字描绘中国互联网20年变迁
  15. 极简Python:用opencv实现人脸检测,并用本地摄像头实现视频流的人脸识别
  16. 有关狼人杀的专业名词及表水思路
  17. P1.2高清小间距LED显示屏600*337.5mm箱体价格
  18. 复盘2020全球旅游业:新冠疫情巨大冲击下的艰难复苏
  19. 针对间接分支的比特级感知预测器BLBP “Bit-level Perceptron Prediction for Indirect Branches”(2019 ISCA)
  20. Python:OS 异常 的17种情况

热门文章

  1. 基于Android T代码分析: 在freeform窗口的标题栏拖动时移动窗口流程和拖动freeform窗口边沿改变大小流程
  2. 口袋妖怪letsgo服务器几点维护,口袋妖怪letsgo新手怎么玩 新手玩法攻略分享
  3. 中国新起之秀男模李磊 HOLD住欧美杂志时尚大片
  4. 在ie下a标签的download
  5. 2022国赛数学建模A题B题C题思路分析 高教社杯
  6. 模拟键盘 keybord
  7. java.util.Comparator的用法
  8. Adobe CS4 安装
  9. 刷PDD笔试题--编程
  10. linux netstat命令参数详解