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

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

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

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

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

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

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

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

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP(7)

也就是

Anisotropic gauss filter-LMLPHP

然而我们只对x,y感兴趣,因此我们将Anisotropic gauss filter-LMLPHP分解为

Anisotropic gauss filter-LMLPHP (10)

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

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

并放入(10)式后得到

Anisotropic gauss filter-LMLPHP

根据指数的性质也可写为

Anisotropic gauss filter-LMLPHP

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

Anisotropic gauss filter-LMLPHP

第一项表示x方向的滤波

Anisotropic gauss filter-LMLPHP

第二项表示Anisotropic gauss filter-LMLPHP滤波

Anisotropic gauss filter-LMLPHP其中Anisotropic gauss filter-LMLPHPAnisotropic gauss filter-LMLPHP

至此分解完成:

Anisotropic gauss filter-LMLPHP

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

具体效果如图

Anisotropic gauss filter-LMLPHP

05-02 15:46