http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm
在上篇文章中我给出了高斯滤波的这个链接。
现在对其进行翻译,黑色字为原文翻译,彩色字是我自己的注解。
高斯平滑
高斯平滑
引言:
高斯平滑是一个用来“模糊”图像,去除细节及噪声的2维卷积操作[convolution operator]。听起来它和均值滤波[mean filter]没什么两样,但它用了不同的卷积内核[kernel]——可以表达高斯(钟形)峰状分布[Gaussian (`bell-shaped') hump]。我们接下来细细讨论这种内核的特性。
原理:
一维高斯分布有如下形式;
图像表示如图2所示:
高斯平滑就是通过卷积将这种二维分布作为点扩散[`point-spread']函数。因为图像以离散像素点的集合存储,所以我们需要构造一个离散逼近高斯函数的的矩阵来实现卷积。理论上,高斯分布永远非0【我的理解是就像标准正态分布那张图,不可能和X轴相交因为这样的话概率就为0,就是一个不可能事件了】,这就需要一个无限大的卷积内核,但事实上,0都比和均值三个标准差远的数有效【这句话翻译的有点渣,意思就是:尽管正态变量的取值范围是(-无穷,+无穷),但它的值落在(u-3
图3 1.0为标准差的高斯内核
一旦得到稳定高斯内核,高斯平滑就可以用标准的卷积方式实现。只要将上面所示的二维高斯分布分成x,y两个单元运算卷积就会很快。因此,二维卷积就可以通过现在X轴方向卷积,再在Y轴方向卷积实现。(高斯分布实际上只有这样才能正真实现各方向同性(isotropic)。)图4所示是形成图3中的内核的一维X内核分量(在除以273之后,每一行像素的边界位置有取整和截断操作,因为大部分值等于0,这样使得原本7*7的矩阵缩小为上图所示的5*5矩阵),Y分量一模一样,只不过是竖直方向而已。
图4 一组用来计算图3所示内核的一维内核
【上面这两段是什么意思呢?就是怎么构造一个高斯滤波内核!也就是将点(-2,2)(0,0)(2,-2)等等点带入二维高斯函数求得对应值,可以使用MATLAB。明显,这种结果都是零点几的小数,那我们就希望积分得到0-255的值来卷积!所以才会有273=4*1+……+4*26+41】
一种计算大标准差高斯平滑的更好方式是用一个小的高斯分布多次卷积图像。因为这种计算复杂度较大,所以它适用于硬件流水作业。
高斯滤波不仅在工程应用有应用,它也受到计算生物的青睐,这归因于生物仿真学,例如,一些细胞在脑神经的视觉通路上逼近高斯响应。
使用手册:
高斯平滑的效果是模糊图像,和均值滤波有些相似。平滑度由高斯分布的标准差决定。(当前,大标准差的分布意味着更大的内核实现准确性。)
高斯输出每个像素邻域的平均权重,这种平均权重更倾向与中心的点。这和均值滤波的平均权重不同。因此,高斯分布与相近大小的均值滤波相比能更平缓的平滑图像并保留边缘。
一个使用高斯滤波平滑图像的缘由归结于频率响应。大多基于卷积的平滑滤波器是低通滤波。这就意味着他们会去除图像的高频分量。一个卷积滤波的频率响应,即他对不同空间频率的作用,可以通过傅立叶变换观察。【也就是低通滤波保留了图像的低频部分,不相信可以用傅里叶变换去验证的意思】图5所示正是宽度为5的一维均值滤波和标准差为3的高斯滤波的频率响应。
相对低频分量两个滤波器都减弱了高频分量,但均值滤波存在一定震荡,高斯滤波却没有。所以通过选取合适大小的高斯滤波我们有信心在图像中保留特定频段的空间频率,均值滤波就做不到。它对于边缘检测的影响正如在零交叉一文提到的一样。(在使用Canny边缘检测的标准下高斯滤波事实上和最理想的边缘检测十分接近。)
文章最后的例子我这里不做翻译,它的主要意思就是高斯滤波处理对椒盐噪声不是很擅长,可以使用:
median filtering, conservative smoothing or Crimmins Speckle Removal.