2011-01-14 33 views
1

我们都知道高斯内核的可分离性质。 有没有其他可分离的模糊内核是常见的?可分离的2D模糊内核

我正在寻找一个几乎与高斯模糊一样快的内核。

由于各种原因,我无法使用高斯模糊。 我宁愿不需要三角函数的东西(否则我会使用某种“Windows”,比如Hann)。

谢谢。

+0

目前尚不清楚您正在寻找 - 为什么高斯不适合您?你知道你可以改变高斯滤波器中的西格玛,改变内核的整体大小,对吗? – 2011-01-14 12:06:11

+0

我会的。谢谢保罗。 – Royi 2011-01-14 14:27:02

回答

0

箱式过滤器是可分离的而且很常见。但我真的不知道你在找什么样的滤镜 - 例如,它应该是旋转对称的吗?如果不是,则行和列模糊滤波器的任何卷积都是可分离的蓝色滤波器。

+0

它应该尽可能接近高斯模糊。圆形对称是受欢迎的。谢谢。 – Royi 2011-01-14 12:21:42

+2

“尽可能接近高斯模糊” - 然后使用高斯模糊有什么问题? – Niki 2011-01-14 12:24:19

4

从评论到更早的答案,听起来好像你正在处理错误的假设,即计算高斯滤波器系数占高斯滤波器成本的很大一部分。这肯定是不是的情况。计算密集型部分将系数与图像进行卷积。无论系数如何计算,任何给定的NxN滤波器的成本都是相同的。

用于施加高斯(或任何可分离滤波器)

伪码:

  • 计算1D高斯(或其他可分离滤波器)系数
  • 为每一行
    • 每个COL
      • 申请水平轴上的1D系数
  • 为每个山口每一行
      • 申请1D系数在垂直轴

(注:在上面的讨论中我假设对称的(N×N个)过滤器。)

3

如果你想要没有成本的高斯模糊的效果,做一个盒子BL你多次。无限数量的遍历将复制高斯,但仅需要〜3就足以欺骗眼睛。

如果通过单独执行水平和垂直条实现方块模糊,一个非常快速的实现就是扫描每个像素条并保持总计运行,在前面添加像素半径/ 2,同时减去像素半径/后面2个像素,并乘以缓存1 /半径来计算运行平均值。

关于这一点的伟大之处在于模糊的半径对计算需要多长时间具有可忽略的影响。