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
具体效果如图

Anisotropic gauss filter的更多相关文章
- 二维高斯滤波器(gauss filter)的实现
我们以一个二维矩阵表示二元高斯滤波器,显然此二维矩阵的具体形式仅于其形状(shape)有关: def gauss_filter(kernel_shape): 为实现二维高斯滤波器,需要首先定义二元高斯 ...
- opencl gauss filter优化(三)
1.根据前两次的最终结果: 使用普通buffer,Horizontal 5ms, Vertical 17 ms 使用image buffer:Horizontal 9.4ms, Vertical 6. ...
- opencl gauss filter优化(二)
1.buffer使用image的方式:Horizontal 与 Vertical 算法一样, 共需30ms,wait time 19ms. const sampler_t sampler = CLK_ ...
- opencl gauss filter优化(一)
Platform: LG G3, Adreno 330 ,img size 3264x2448 C code neon GPU 300 60 29 单位:ms 1. 目前按如下行列分解的方式最快29m ...
- Texture Filter中的Bilinear、Trilinear以及Anistropic Filtering
1. 为什么在纹理采样时需要texture filter(纹理过滤)?我们的纹理是要贴到三维图形表面的,而三维图形上的pixel中心和纹理上的texel中心并不一至(pixel不一定对应texture ...
- 各项异性滤波简单介绍Anisotropic Filtering(AF)
本文主要整理简绍来自互联网的各项异性滤波的知识. 原文链接:http://www.linuxgraphics.cn/graphics/using_anisotropic_texture_filteri ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- anisotropy texture filtering
http://www.extremetech.com/computing/51994-the-naked-truth-about-anisotropic-filtering 1. 为什么在纹理采样时需 ...
- 【学习笔记】Learning OpenCV3——Ch8 working with video
Reading Video with the cv::VideoCapture Object 对象创建的三种方法: // 1. Input filename cv::VideoCapture::Vid ...
随机推荐
- 实现Rsync同步Nginx前端配置
近期,由于我们的阿里前端服务器频频受到恶意的流量攻击,导致前端NGINX进入黑洞而无法正常访问公司网站. 按之前的预计方法,采用加速乐及备用全配置前端的作法,将恶意短时流量攻击的损失时间降到最短.现将 ...
- Android中的一些小知识
android中开发常用快捷键alt+/ 自动补全ctrl+1 有问题提示生成接收的参数 ctrl+L 在按2 注释// 注释 ctrl+//**/ 多行注释 ctrl+shift+/ android ...
- QT 让窗口(或控件)居中
代码如下: XXX::XXX(QWidget *parent /* = 0 */) { .................. //注意,resize一定要放在这段代码的前面 resize(300, 3 ...
- VC++6.0注释快捷键设置
在Qt Creator,eclipse等编辑器中,都默认有注释代码的快捷键:Ctrl + /. 注释快捷键在程序编程当中的作用相当明显,提高了编程效率.我在网上找到了一个在VC++6.0工具中添加注释 ...
- codevs1044:dilworth定理
http://www.cnblogs.com/submarine/archive/2011/08/03/2126423.html dilworth定理的介绍 题目大意:求一个序列的lds 同时找出这个 ...
- 探求Floyd算法的动态规划本质(转)
---恢复内容开始--- Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Fl ...
- Scala-的元组和映射
package com.mengyao.scala.function /** * Scala 映射 * Scala中的Key,Value集合被称为映射,映射中的每一个key,value称为对偶 * ...
- Power(int base, int exponent) 函数实现
这个是个高效的算法,时间复杂度为 O(logn) 原理: a的n次方: #include<iostream> #include<cmath> using namespace s ...
- Jquery css函数用法(判断标签是否拥有某属性)
判断一个层是否隐藏:$("#id").css("display")=="none" ;在所有匹配的元素中,设置一个样式属性的值:$(&qu ...
- CentOS启动MySQL服务失败
:: mysqld_safe Starting mysqld daemon with databases from /data/mysql :: [Warning] Can't create test ...