卢松松博客

高斯模糊的算法

 人参与 | 时间:2012年11月15日 11:30

小知识:

高斯模糊是图像处理中广泛使用的技术、通常用它来减小噪声以及降低细节层次。这种模糊技术生产的图像的视觉效果是好像经过一个半透明的屏幕观察图像。高斯模糊也用语计算机视觉算法中的预处理阶段以增强图像在不同尺寸下的图像效果。

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

高斯模糊的算法 好文分享 第1张

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

高斯模糊的算法 好文分享 第2张

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

一、高斯模糊的原理

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

高斯模糊的算法 好文分享 第3张

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

高斯模糊的算法 好文分享 第4张

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

高斯模糊的算法 好文分享 第5张

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

高斯模糊的算法 好文分享 第6张

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

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

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

二、正态分布的权重

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

高斯模糊的算法 好文分享 第7张

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

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

三、高斯函数

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

高斯模糊的算法 好文分享 第8张

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

高斯模糊的算法 好文分享 第9张

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

高斯模糊的算法 好文分享 第10张

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

高斯模糊的算法 好文分享 第11张

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

四、权重矩阵

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

高斯模糊的算法 好文分享 第12张

更远的点以此类推。

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

高斯模糊的算法 好文分享 第13张

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

高斯模糊的算法 好文分享 第14张

五、计算高斯模糊

有了权重矩阵,就可以计算高斯模糊的值了。

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

高斯模糊的算法 好文分享 第15张

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

高斯模糊的算法 好文分享 第16张

得到

高斯模糊的算法 好文分享 第17张

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

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

六、边界点的处理

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

一个变通方法,就是把已有的点拷贝到另一面的对应位置,模拟出完整的矩阵。

七、参考文献

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

(完)

文章来源: 阮一峰的博客

顶: 1踩: 0

来源:,欢迎分享,(QQ/微信:13340454)

必填

选填

选填

◎已有 29 人评论,微信:QQ13340454

1楼仁德  2015-09-10 16:35:10
可笑
顶: 0踩: 0 回复
2楼美女图片  2014-01-12 18:37:27
又涨姿势了
顶: 0踩: 0 回复
3楼  2013-12-23 22:57:39
不明觉厉
顶: 0踩: 0 回复
4楼古力博客  2012-07-22 11:22:02
还是地板
顶: 0踩: 0 回复
5楼中国鼻炎非药物治疗网我  2012-02-06 11:42:38
还有可能是抢夺天朝综合执法的精锐队伍
顶: 0踩: 0 回复
6楼广州seo  2013-06-08 12:11:51
确实有这样的问题!很伤啊
顶: 0踩: 0 回复
7楼广州seo  2013-05-08 14:33:20
每天都来看看,希望从你这里学到东西,今天有收获了
顶: 0踩: 0 回复
8楼广州seo  2012-12-03 10:16:48
原来是这样,一直困惑中
顶: 0踩: 0 回复
9楼九哥seo  2012-11-23 08:28:40
SEO需要学的有这么多?全能
顶: 0踩: 0 回复
10楼秦远征博客  2012-11-19 10:23:40
以前在用PS时经常用到高斯模糊处理图像
顶: 0踩: 0 回复
11楼邓安良  2012-11-16 21:25:09
松哥,你转得真快,我就是做这方面得,图像处理、机器学习。
顶: 0踩: 0 回复
12楼分文博客  2012-11-16 11:51:46
数学高深啊
顶: 0踩: 0 回复
13楼淘作文  2012-11-16 10:45:38
看不太懂,只怪自己数学没学好。
顶: 0踩: 0 回复
14楼郭晶晶霍启刚给你发请柬没  2012-11-16 09:11:50
处理个图片 都用上高斯算法了 欧巴
顶: 0踩: 0 回复
15楼男人你懂得  2012-11-16 09:11:00
松哥太强大了
顶: 0踩: 0 回复
16楼傲气凌神  2012-11-16 08:22:40
全是数字看的头大
顶: 0踩: 0 回复
17楼国外新鲜资讯  2012-11-15 19:49:27
看不懂绝对
顶: 0踩: 0 回复
18楼楚韵日记簿  2012-11-15 18:33:05
要算法有神马用?
顶: 0踩: 0 回复
19楼明月博客  2012-11-15 17:10:53
亚历山大,看不懂.
顶: 0踩: 0 回复
20楼仿真茅草瓦  2012-11-15 16:58:56
没想到松松老师对PS也这么熟悉啊!
顶: 0踩: 0 回复
21楼葛悦欢  2012-11-15 16:45:01
学习了,这才是真正的美工呢
顶: 0踩: 0 回复
22楼旅途者  2012-11-15 16:36:40
这个真去了我的知识范围以外了,我这么博学……
顶: 0踩: 0 回复
23楼564b博客  2012-11-15 16:20:22
这个有吗用?没看明白。
顶: 0踩: 0 回复
24楼个人网站  2012-11-15 15:38:43
哈哈,松松牛逼啊。这种文章都。。。
顶: 0踩: 0 回复
25楼等待思索  2012-11-15 14:50:24
有点深奥,其实做起来,并不难~~
顶: 0踩: 0 回复
26楼於菟阅读  2012-11-15 14:37:07
写阅读博客的谨慎表示看不懂。
顶: 0踩: 0 回复
27楼足球直播  2012-11-15 13:57:59
高斯函数对我这智商的人来说,简直太难了!看着这模糊的图片头都晕了。
顶: 0踩: 0 回复
28楼君在成都  2012-11-15 13:35:18
不会做SEO都得懂这些东西吧,懂不来哦。
顶: 0踩: 0 回复
29楼媚博  2012-11-15 13:24:29
这次真学到东西了
顶: 0踩: 0 回复
30楼绿豆人  2012-11-15 13:24:12
虽然没仔细看 但是大概懂了
顶: 0踩: 0 回复
31楼杭州seo  2012-11-15 13:18:56
这个是做什么的 看不懂
顶: 0踩: 0 回复
32楼汪棒棒  2012-11-15 12:57:27
真心看不懂
顶: 0踩: 0 回复
33楼陈念博客  2012-11-15 11:54:04
真心看不太懂··没事可以研究下~!
顶: 0踩: 0 回复
34楼汇感网  2012-11-15 11:35:29
松松以前就是美工
顶: 0踩: 0 回复