本文转自:http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html

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

“模糊”的算法有很多种,其中有一种叫做”高斯模糊“(Gaussian Blur)。它将正态分布(又名”高斯分布”)用于图像处理。

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

一、高斯模糊的原理

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

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

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

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

上面分别是原图、模糊半径3像素、模糊半径10像素的效果。模糊半径越大,图像就越模糊。从数值角度看,就是数值越平滑。
接下来的问题就是,既然每个点都要取周边像素的平均值,那么应该如何分配权重呢?
如果使用简单平均,显然不是很合理,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。

二、正态分布的权重

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

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

三、高斯函数

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

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

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

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

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

四、权重矩阵

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

更远的点以此类推。
为了计算权重矩阵,需要设定σ的值。假定σ=1.5,则模糊半径为1的权重矩阵如下:

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

五、计算高斯模糊

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

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

得到

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

六、边界点的处理

如果一个点处于边界,周边没有足够的点,怎么办?
一个变通方法,就是把已有的点拷贝到另一面的对应位置,模拟出完整的矩阵。

七、参考文献

  • How to program a Gaussian Blur without using 3rd party libraries

高斯模糊的算法(高斯权重)相关推荐

  1. 高斯模糊的算法(高斯卷积 高斯核)

    通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果. "模糊"的算法有很多种,其中有一种叫做"高斯模糊"(Gaussia ...

  2. Cocos Creator Effect 高斯模糊 (带算法)

    通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果. "模糊"的算法有很多种,其中有一种叫做"高斯模糊"(Gaussia ...

  3. 图像降噪算法——高斯低通滤波

    图像降噪算法--高斯低通滤波 图像降噪算法--高斯低通滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--高斯低通滤波 1. 基本原理 通过离散傅里叶变换对图像进行滤波流程作非常简 ...

  4. 高斯模糊为什么叫高斯滤波_为什么高斯是所有发行之王?

    高斯模糊为什么叫高斯滤波 高斯分布及其主要特征: (Gaussian Distribution and its key characteristics:) Gaussian distribution ...

  5. 【综合评价分析】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列

    [综合评价分析]熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列 文章目录 1. 熵权法确定指标权重 (1)构造评价矩阵 Ymn (2)评价矩阵标准化处理 (3)计算指标信息熵值 Mj ...

  6. 【光学】基于matlab GS算法高斯光转换成高阶高斯光+一阶空心高斯光+贝塞尔高斯光【含Matlab源码 2166期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GS算法高斯光转换成高阶高斯光+一阶空心高斯光+贝塞尔高斯光[含Matlab源码 2166期] 点击上面蓝色字体 ...

  7. 其他算法-高斯混合模型

    目录 高斯模型 单高斯模型 高斯混合模型GMM 参数估计 单高斯模型参数估计-极大似然 高斯混合模型参数估计-EM算法 GMM与k-means 高斯模型 单高斯模型 当样本数据 x∈Rx\in\mat ...

  8. 5 机器学习 朴素贝叶斯算法 高斯模型 多项式模型 伯努利模型 拉普拉普平滑系数 TfidfVectorizer

    机器学习 1 朴素贝叶斯算法 1.1 朴素贝叶斯算法介绍 朴素贝叶斯算法是一种衡量标签和特征之间概率关系的监督学习算法,是一种专注于分类的算法."朴素"二字表示这个算法基于一个朴素 ...

  9. 三种常用的朴素贝叶斯实现算法——高斯朴素贝叶斯、伯努利朴素贝叶斯、多项式朴素贝叶斯

    朴素贝叶斯 在机器学习中,朴素贝叶斯分类器是一系列以假设特征之间强(朴素)独立下运用贝叶斯定理为基础的简单概率分类器. 朴素贝叶斯算法Naive Bayes定义中有两个关键定义:特征之间强假设独立和贝 ...

最新文章

  1. 黯然微信小程序杂记(一):从服务器获取数据 后端语言php
  2. Linux——关机命令详解
  3. AIX系统文件安全性方面的几点考虑
  4. TFboy养成记 多层感知器 MLP
  5. Winform中使用FastReport实现自定义PDF打印预览
  6. OsharpNS轻量级.net core快速开发框架简明入门教程
  7. 【总结】Qt+Mysql5.5中文乱码解决
  8. Java自定义Annotation方法
  9. thinkcmf 配置初始化加载模版
  10. 判断文件是否为DICOM文件
  11. 【励志】比风水厉害100倍的宇宙定律
  12. 无监督re-ranker,Improving Passage Retrieval with Zero-Shot Question Generation
  13. CYUSB3014固件部分低版本工程在Eclipse中编译得到img文件时无效的解决方案
  14. nginx界面管理工具之nginxWebUI 搭建与使用
  15. PuTTY基本使用,Linux基本命令
  16. 18 -Flask构建弹幕微电影网站- 部署上线
  17. input 在ios环境下,input选中出现灰色背景
  18. []==''返回?为什么?运算符==进行了什么操作?
  19. 逆风飞扬 吴士宏_打工女皇吴士宏:从初中辍学的患癌小护士到微软中国总经理...
  20. PyTorch搭建预训练AlexNet、DenseNet、ResNet、VGG实现猫狗图片分类

热门文章

  1. 基于 HTML5 + WebGL 的宇宙 3D 展示系统
  2. 安装yolov5时,遇到的问题
  3. ImportError: packaging>=20.0 is required for a normal functioning of this mo
  4. Jemeter温故而知新
  5. 实验七 函数程序设计 张玉生《C语言程序设计实训教程》双色版 配套实验书答案 (纯手打, 仅供参考)
  6. Linux下磁盘常见错误分析与检测工具使用
  7. CVE-2022-1388 F5 BIG-IP权限绕过命令执行漏洞复现
  8. 如果通过股价均线分析股票
  9. python二手房价格预测_分析香港2万6千套在售二手房数据,1000万的居然有那么多...
  10. jeecms服务器响应失败,后台提示“服务请求发生了错误”,原因不明