Anisotropic gauss filter

最近一直在做版面分析,其中文本行检测方面,许多文章涉及到了Anigauss也就是各向异性高斯滤波。

顾名思义,简单的理解就是参数不同的二维高斯滤波。

在文章Fast Anisotropic Gauss Filtering中阐明了Anisotropic Gauss Filter可以分解成想,y两个方向不同的一维高斯滤波,其中x,y不必垂直。

下面我们来看一下分解过程。

一个简单的各向同性二维高斯卷积滤波一般如下式

 

当x,y方向缩放比例不同时我们便得到了各向异性二维高斯滤波如图

当然也可以做其他方向的滤波,我们设旋转角度为θ如图,则旋转后坐标与x,y坐标关系为

 

 因此可以得到一个通用的表达式

其中u轴为θ方向,v轴为垂直于θ方向。

根据傅里叶变换我们知道,空域卷积等于频域相乘

所以如果一个线性滤波的傅里叶变换可以写成两个分别关于Wx,Wy方程相乘的形式,那么在空域他可以写成两个子项的卷积

因此我们可以将 的傅里叶变换写成如下形式:

(7)

也就是

 

然而我们只对x,y感兴趣,因此我们将分解为

  (10)

然后我们可以得到a11,a12,a13的表达式

再一次明确我们的目标是将各向异性高斯滤波分解成一个x方向与一个延方向的一维滤波。

 

 便于分解,我们(10)式写成所有与Wy无关和Wy有关的相加形式

 并放入(10)式后得到

 根据指数的性质也可写为

然后做傅里叶逆变换后得到

 第一项表示x方向的滤波

第二项表示滤波

其中

 至此分解完成:

 文中作者应用了recursive filter去做了实现,具体需要参考源代码anigauss.c

具体效果如图

原文地址:https://www.cnblogs.com/klitech/p/6144670.html