OpenCV: 高斯滤波

来源:互联网 发布:淘宝点击量和访客数 编辑:程序博客网 时间:2024/04/25 06:36

一、前言:

关于高斯滤波在我的前一篇文章《数字图像基本处理算法》中有所谈及那篇只是介绍了高斯滤波的应用,现在这一篇将着重简介高斯滤波的原理和应用,一探个究竟!

二、啥是高斯滤波?好吃么?            

高斯滤波,说白了就是一个函数来对输入的信号(其实这里的信号就是图像的像素值)进行计算然后得出结果作为该信号的值,只不过函数是高斯函数而已,就是这么简单。

那么高斯函数又是何许人也?

答曰:不过一个公式而已

其真人如下:

这个呢是一维的高斯函数

这个呢是二维的高斯函数

为什么有两个高斯函数呢?因为二维的高斯函数可以降为一维的,通过在水平和竖直方向对图像进行处理就相当于用一个二维的高斯函数对图像进行处理,那么为什么要这样呢?

答曰:速度,但是需要注意的是实际编程的时候是直接采用计算好的模板直接计算,方便快捷

那么请问?高斯滤波好吃么?

废话,当然不好吃,有本事你吃吃看。^_^

不过呢,虽然不好吃,但是,它却有着非常好的剔除噪声的效果。

这个就是为什么要用高斯滤波啦。它能够让我们获得性噪比比较高的图像。

高等数学里面有没有看到过高斯函数的图像?

那个正态分布的图像?

对,就是它,人家自己都说了它对去除服从正态分布的噪声很有效^_^

常用的零均值离散高斯滤波器函数就是长得这个样子滴:

即g(x)=exp(-x^2/(2 sigma^2)

为什么要用高斯函数进行滤波呢?

有一下几点原因:

1.      高斯函数具有高斯函数是单值函数。因为高斯函数对谁都不偏袒图像的边缘在哪里它可不知道,他只知道干它的事情,所以它在滤波的时候并不偏袒谁,即高斯函数在各个方向的平滑程度是相同的。

2.      高斯函数具有旋转不变的特性,主要是因为它在工作的时候是用用像素邻域的加权均值来代替该点的像素值。

3.      高斯函数的付立叶变换频谱是单瓣的,它能够去除高频信号同时又保留有用的信号!

4.      高斯函数说了它的参数sigma决定了你要的平滑程度sigma越大,平滑的就越厉害

5.      最后一点就是二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长。这样是不是很快呢???

三、后记

另外呢?高斯滤波还有几个兄弟滤波器,他们是中值滤波简单滤波以及双边滤波,如果您有兴趣呢,可以看看他们的兄弟们,不然他们会寂寞滴哈,^_^

原创粉丝点击