Gabor学习笔记
本文根据博客http://blog.csdn.net/watkinsong/article/details/7870996 ,博客http://www.cnblogs.com/yingying0907/archive/2012/11/22/2781945.html整理。
1.傅里叶变换
1) 简介
数字图像处理的方法主要分成两大部分:空域分析法和频域分析法。空域分析法就是对图像矩阵进行处理;频域分析法是通过图像变换将图像从空域变换到频域,从另外一个角度来分析图像的特征并进行处理。频域分析法在图像增强、图像复原、图像编码压缩及特征编码压缩方面有着广泛应用。
如果一个信号f(t)在
上满足:
① f(t)在任一有限区间上满足狄氏条件;
② f(t)在
上绝对可积即
就可以通过傅里叶变换把时域信号f(t)转化到频域进行处理:

然后再通过傅里叶反变换把频域信号转化到时域:

傅里叶变换是线性系统分析的有力工具,提供了一种把时域信号转换到频域进行分析的途径,时域和频域之间是一对一的映射关系。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对 于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。
傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的 谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将 图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为 灰度分布函数。
2) 不足之处
经典Fourier变换只能反映信号的整体特性(时域,频域)。对傅里叶谱中的某一频率,无法知道这个频率是在什么时候产生的。从傅里叶变换的定义也可看出,傅里叶变换是信号在整个时域内的积分,因此反映的是信号频率的统计特性,没有局部化分析信号的功能。另外,要求信号满足平稳条件。傅里叶变换时域和频域是完全分割开来的。
l 由式
可知,要用Fourier变换研究时域信号频谱特性,必须要获得时域中的全部信息;
l 信号在某时刻的一个小的邻域内发生变化,那么信号的整个频谱都要受到影响,而频谱的变化从根本上来说无法标定发生变化的时间位置和发生变化的剧烈程度。也就是说,Fourier变换对信号的齐性不敏感。不能给出在各个局部时间范围内部频谱上的谱信息描述。然而在实际应用中齐性正是我们所关心的信号局部范围内的特性。如,音乐,语言信号等。即:局部化时间分析,图形边缘检,地震勘探反射波的位置等信息极重要。
l 为解决傅里叶变换的局限性,产生了Gabor变换和小波变换。
2.Gabor变换
Gabor变换是D.Gabor 1946年提出的。为了由信号的Fourier变换提取局部信息,引入了时间局部化的窗函数,得到了窗口Fourier变换。由于窗口Fourier变换只依赖于部分时间的信号,所以,现在窗口Fourier变换又称为短时Fourier变换,这个变换又称为Gabor变换。
1) Gabor优点
Gabor小波与人类视觉系统中简单细胞的视觉刺激响应非常相似。它在提取目标的局部空间和频率域信息方面具有良好的特性。虽然Gabor小波本身并不能构成正交基,但在特定参数下可构成紧框架。Gabor小波对于图像的边缘敏感,能够提供良好的方向选择和尺度选择特性,而且对于光照变化不敏感,能够提供对光照变化良好的适应性。上述特点使Gabor小波被广泛应用于视觉信息理解。
Gabor滤波器和脊椎动物视觉皮层感受野响应的比较:第一行代表脊椎动物的视觉皮层感受野,第二行是Gabor滤波器,第三行是两者的残差。可见两者相差极小。Gabor滤波器的这一性质,使得其在视觉领域中经常被用来作图像的预处理。

2) Gabor定义
① 具体窗函数――Gaussaion的 Gabor变换定义式
Gabor变换的基本思想:把信号划分成许多小的时间间隔,用傅里叶变换分析每一个时间间隔,以便确定信号在该时间间隔存在的频率。其处理方法是对f(t)加一个滑动窗,再作傅里叶变换。
设函数f为具体的函数,且
,则Gabor变换定义为

其中,
,是高斯函数,称为窗函数。其中a>0,b>0.
是一个时间局部化的“窗函数”。其中,参数b用于平行移动窗口,以便于覆盖整个时域。对参数b积分,则有

信号的重构表达式为

Gabor取g(t)为一个高斯函数有两个原因:一是高斯函数的Fourier变换仍为高斯函数,这使得Fourier逆变换也是用窗函数局部化,同时体现了频域的局部化;二是Gabor变换是最优的窗口Fourier变换。其意义在于Gabor变换出现之后,才有了真正意义上的时间-频率分析。即Gabor变换可以达到时频局部化的目的:它能够在整体上提供信号的全部信息而又能提供在任一局部时间内信号变化剧烈程度的信息。简言之,可以同时提供时域和频域局部化的信息。
② 窗口的宽高关系
经理论推导可以得出:高斯窗函数条件下的窗口宽度与高度,且积为一固定值。
 矩形时间――频率窗:宽为
,高
。
由此,可以看出Gabor变换的局限性:时间频率的宽度对所有频率是固定不变的。实际要求是:窗口的大小应随频率而变化,频率高窗口应愈小,这才符合实际问题中的高频信号的分辨率应比低频信号的分辨率要低。
3) 离散Gabor变换的一般求法
① 首先选取核函数
可根据实际需要选取适当的核函数。如,如高斯窗函数;

则其对偶函数
为

② 离散Gabor变换的表达式


其中,

是
的对偶函数,二者之间有如下双正交关系。

4) Gabor变换的解析理论
Gabor变换的解析理论就是由g(t)求对偶函数
的方法。
定义g(t)的Zak变换为

可以证明对偶函数可由下式求出:

有了对偶函数可以使计算更为简洁方便。
5) 适用条件
① 临界采样Gabor展开要求条件:TΩ=2π;
② 过采样展开要求条件:TΩ≤2π;
当TΩ>2π时,欠采样Gabor展开,已证明会导致数值上的不稳定。
6) 应用
① 暂态信号检测
如果对信号波形有一定的先验知识且可以据此选取合适的基函数,可以用Gabor变换对信号作精确的检测统计计量。
② 图象分析与压缩
二维Gabor变换可以应用到图象分析与压缩中。
3. 二维Gabor滤波器
用Gabor 函数形成的二维Gabor 滤波器具有在空间域和频率域同时取得最优局部化的特性,因此能够很好地描述对应于空间频率(尺度)、空间位置及方向选择性的局部结构信息。Gabor滤波器的频率和方向表示接近人类视觉系统对于频率和方向的表示,并且它们常备用于纹理表示和描述。在图像处理领域,Gabor滤波器是一个用于边缘检测的线性滤波器。,在空域,一个2维的Gabor滤波器是一个正弦平面波和高斯核函数的乘积。Gabor滤波器是自相似的,也就是说,所有Gabor滤波器都可以从一个母小波经过膨胀和旋转产生。实际应用中,Gabor滤波器可以在频域的不同尺度,不同方向上提取相关特征。

1)定义
空域来看:是高斯核函数调制正弦平面波
s(x,y)是复杂的正弦函数,相当于载波;w(x,y)是2维高斯函数包迹。
(u0,v0)定义了正弦平面波的时域频率,在极坐标中可用f和Θ来表示。

a,b 为x和y方向的椭圆高斯的方差
K=1/ab 为高斯包迹的参数
r 为角度旋转的下标
Θ为旋转角度
(x0,y0)为函数峰值,也是接受域的中心
![]()  | 
|||
![]()  | 
|||
f(x,y) f(x',y')
Gabor滤波器的傅里叶变换:峰值响应在复正弦的空域频率(u0,v0)
![]()  | 
Gabor滤波器示意图,3种角度5种方向:
![]()  | 
2) 分析
生成2维Gabor滤波器的matlab 代码:
http://blog.sina.com.cn/s/blog_80853788010103wx.html
http://blog.csdn.net/weixingstudio/article/details/7872764
Opencv实现:
http://www.cppblog.com/polly-yang/archive/2012/07/14/183327.aspx
Gabor学习笔记的更多相关文章
- Deep Learning(深度学习)学习笔记整理系列之(七)
		
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
 - Machine Learning 学习笔记
		
点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...
 - 论文学习笔记 - 高光谱 和 LiDAR 融合分类合集
		
A³CLNN: Spatial, Spectral and Multiscale Attention ConvLSTM Neural Network for Multisource Remote Se ...
 - js学习笔记:webpack基础入门(一)
		
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
 - PHP-自定义模板-学习笔记
		
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
 - PHP-会员登录与注册例子解析-学习笔记
		
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
 - 2014年暑假c#学习笔记目录
		
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
 - JAVA GUI编程学习笔记目录
		
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
 - seaJs学习笔记2 – seaJs组建库的使用
		
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
 
随机推荐
- 最新做路径动画必备Simple Waypoint System5.1.1最新做路径动画必备Simple Waypoint System5.1.1
			
NEW IN 5.0: up to 400% faster thanks to the DOTween engine! UnityEvents, new movement options and mo ...
 - [转] Eclipse 编辑相关快捷键
			
Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1. [ALT+/] 此快捷键为用户编辑的好帮手,能为用户提供内 ...
 - Mysql导入数据库的方法
			
mysql导入数据库的方法 | 浏览:41023 | 更新:2012-11-01 19:45 1 2 3 4 5 6 7 分步阅读 MySQL是一个中.小型关系型数据库管理系统,由瑞典MySQL AB ...
 - js中json对象的深拷贝
			
/** * 对象深拷贝 * @param obj */ function deepCopy(obj) { var txt=JSON.stringify(obj); return JSON.parse( ...
 - 360极速浏览器UA怪异以及如何用js判断360浏览器
			
本文最后一次更新于7个月前,文章内容可能略有出入.若发现文章中有错误之处,可以留言评论告诉作者. 1.360极速浏览器UA因域名不同而异 今天在写一个判断浏览器.浏览器版本.操作系统.操作系统版本.浏 ...
 - Gerrit的使用
			
为什么要使用Gerrit? 最先接触Gerrit时是Android开发过程中,提交代码给负责人审核时,用到的一款软件.它就是一款代码审核的工具.(向Git代码库推送push代码时,必须要经过Gerri ...
 - tar  压缩去除目录
			
tar zcvf fd.tar.gz * --exclude=file1 --exclude=dir1 注意: 1.yes: --exclude=file1 no: --exclude file1 ...
 - Web大文件上传控件-bug修复-Xproer.HttpUploader6
			
1.修复上传文件夹时,文件夹大小可能不正确的问题.这个问题是由于以MD5模式上传时没有更新文件夹总大小导致. 更新fd_complete.aspx 更新DBFile.cs-fd_complet ...
 - 50条LINUX命令整理
			
1. find 基本语法参数如下: find [PATH] [option] [action] # 与时间有关的参数: -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件: - ...
 - Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2)
			
上篇我们介绍了Windows 8.1 和 WinJS 中新增控件中的 AppBarCommand.BackButton.Hub.ItemContainer,本篇我们接着来介绍 NavBar.Repea ...
 
			
		


