可分离的2D模糊核

时间:2011-01-14 11:54:12

标签: image-processing

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

我正在寻找一种内核,其降低速度几乎和高斯模糊一样快。

由于各种原因,我无法使用高斯模糊。 我更喜欢不需要三角函数的东西(否则我会使用像Hann这样的“Windows”)。

感谢。

4 个答案:

答案 0 :(得分:4)

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

应用高斯(或任何可分离滤波器)的伪代码:

  • 计算1D高斯(或其他可分离滤波器)系数
  • 每行
    • 每个col的
      • 在水平轴上应用1D系数
  • 每行
    • 每个col的
      • 在垂直轴上应用1D系数

(注意:在上面的讨论中,我假设是对称(NxN)滤波器。)

答案 1 :(得分:3)

如果您想要没有成本的高斯模糊效果,请多次进行框模糊。无限次的传球将复制高斯,但只需要~3就足以愚弄眼睛。

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

关于这一点的好处是,模糊的半径对计算所需的时间有可忽略的影响。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

可以使用一维信号处理中经典的已知窗口:
http://en.wikipedia.org/wiki/Window_function

可以使用外部产品创建2d内核 实施应与任何可分离的过滤器一样。