本文将详细介绍经典高斯滤波的相关内容。
高斯滤波器实质上是一种信号的滤波器,其用途是信号的平滑处理。它是一类根据高斯函数的形状来选择权重的线性平滑滤波器,该滤波器对于抑制服从正态分布的噪声非常有效。高斯函数的公式如下所示:
一维高斯函数:
二维高斯函数:
对于二维高斯函数,它的分布如下图所示:
Fig.1二维Gauss分布
对于二维高斯函数,我们设置两个参数:高斯半径r和方差sigma,由半径r我们可以得到一个(2r+1)*(2r+1)大小的高斯核模板,计算函数代码如下(其中k是高斯模板的权系数,即归一化系数):
private static double[,] GaussFuc(int r, double sigma)
{
int size = 2 * r + 1;
double[,] gaussResult = new double[size, size];
double k = 0.0;
for (int y = -r, h = 0; y <= r; y++, h++)
{
for (int x = -r, w = 0; x <= r; x++, w++)
{