高斯滤波器的差异?

时间:2015-02-14 20:33:22

标签: image-processing gaussian

我已经看过许多声称是高斯核计算器的不同来源。然而,这些似乎都给出了相同输入的不同答案。

这些是我看到的来源:

  1. http://dev.theomader.com/gaussian-kernel-calculator/
  2. http://www.embege.com/gauss/
  3. http://softwarebydefault.com/2013/06/08/calculating-gaussian-kernels/
  4. 第三个是唯一一个给我预期输出的人(使用维基百科中的公式并进行规范化)。

    第一个称自己为"不同的"高斯内核,所以我认为它不符合我的预期是有道理的。

    查看源代码,第一个在实现上明显不同于我的预期,尽管最后两个在实现中看起来非常类似于我的预期。尽管如此,我不确定我是否完全遵循第二个来源所做的事情。

    这些都是正确的"?有很多"变种"高斯内核?

1 个答案:

答案 0 :(得分:2)

看起来网站在如何呈现指定过滤器参数的选项方面略有不同,但如果一致地指定过滤器参数,则它们是一致的(在4或5个有效数字内)。

关键区别是第二个站点(即http://www.embege.com/gauss/)需要选中“normalize”框,并输入标准差平方来计算高斯内核与其他两个网站一致的方式。

如您所知,2D高斯模糊滤镜是根据

计算的

enter image description here

其中x和y是距离内核中心的像素距离,sigma是标准偏差。

计算高斯滤波器内核的第一步是选择内核大小和标准偏差。内核大小k总是奇数,3,5,7 ......并且给出了一个2D高斯滤波器内核作为k x k矩阵。

第二种是使用来自中心像素的x和y位移(以像素为单位)计算每个像素从中心位移的内核值。最后,规范化内核的每个元素,使过滤器的所有元素之和等于1.0。

例如,考虑第三个站点的“rose”示例,这是一个3x3高斯内核,权重(标准偏差)为5.5。第三页的作者表示在规范化后过滤器值为

enter image description here

列表中的第一个站点,如果输入Sigma = 5.5且内核大小= 3,则给出:

0.10989 0.111716 0.10989

0.111716 0.113573 0.111716

0.10989 0.111716 0.1098

对于列表中的第二个站点,您需要输入Resolution = 3x3,sigma square = 30.25(5.5的平方),并检查Normalize框。

第二个网站的结果是

{ 0.1098867834673961,0.11171818781545209,0.1098867834673961,

0.11171818781545209,0.11358011486860732,0.11171818781545209,

0.1098867834673961,0.11171818781545209,0.1098867834673961 }