Gabor 特征是一种可以用来描述图像纹理信息的特征,Gabor 滤波器的频率和方向与人类的视觉系统类似,特别适合于纹理表示与判别。

Gabor 特征主要依靠 Gabor 核在频率域上对信号进行加窗,从而能描述信号的局部频率信息。

说到 Gabor 核,不能不提到傅里叶变换。正是靠傅里叶变换,我们才能将信号转换到频率域,才能让Gabor核在频率域去加窗。而在原本的空间域中,一个 Gabor 核实际上就是一个高斯核与正弦波调制的结果,可以看做是高斯核应用在了正弦波的频域部分。

上面说的还是比较笼统,下面我们一步一步介绍Gabor核是怎么对信号“加窗”的。

一、傅里叶变换

关于傅里叶变换,韩昊同学总结过一个很直观的解释。我这里就不赘述了。

总之,傅里叶变换是图像处理里面一个很重要的工具,本质是将任意一个函数转化为若干不同频率正弦波的组合,(组合方式在离散函数中就是相加,在连续函数中就是积分)。由此,将空域(或时域)信号转换到了频域(即频率域)。

空间域中多个波叠加,在频率域中就对应着若干个散落的点。韩昊同学将其比喻为不同音阶组成的音谱。

频率域中的基本元素就是正弦波:空间域中的一个正弦波波形,在频率域中只要一个点就能表示。

维基百科上有一个动态图,展示了一个叠加波如何分解到频率域上的若干点:

事实上,任何波都可以看做是若干(乃至无穷)个不同频率正弦波的叠加。

就像可见光可以看做不同频率的光的叠加一样,通过傅里叶变换,我们能将任何波分解为不同频率波的叠加。这样转换的好处是:有些情况下空域中很复杂的问题,在频率域会变得十分简单。

二、Gabor 核

2.1 一维 Gabor 核

2.1.1 一维傅里叶变换

一维傅里叶变化定义如下:

f^(ξ)=∫∞−∞f(t)e−i2πtξdt,ξ为任意实数(1) (1)f^(ξ)=∫−∞∞f(t)e−i2πtξdt,ξ为任意实数

其中,f 为输入信号, ξ ξ 表示分解得到的各个波的频率, f^(f,ξ) f^(f,ξ) 为变换后的信号。公式中的  e−i2πxξ e−i2πxξ 表示一个复数波,关于复数波的解释可以看我之前的一篇文章

从上面的公式可以看出,原信号  f(t) f(t) 以 t 为自变量,描述了信号值随时间的变化,说明原信号空间在时间域中。经过傅里叶变换后,函数自变量变为了  ξ ξ , f^(ξ) f^(ξ) 描述了信号值随频率的变化,即信号转换到了频率域空间中。如果说原来信号的图示需要以时间(空间)为坐标轴的话,信号在傅里叶变换后的图示就需要以频率为坐标轴了。

2.1.2 一维 Gabor 核

一维Gabor核由一个高斯核与一个复数波的乘积定义:

Gabor(t)=keiθω(at)s(t)(2) (2)Gabor(t)=keiθω(at)s(t)

其中,

{ω(t)=e−πt2s(t)=ei(2πf0t) {ω(t)=e−πt2s(t)=ei(2πf0t)

这里, f0 f0 是复数波 s(t) s(t)的频率。

将复数波 s(t)=ei(2πf0t) s(t)=ei(2πf0t)代入 2 2式中,得到:

Gabor(t)=kω(at)ei(2πf0t+θ)=kω(at)[cos(2πf0t+θ)+isin(2πf0t+θ)](1)(2) (1)Gabor(t)=kω(at)ei(2πf0t+θ)(2)=kω(at)[cos⁡(2πf0t+θ)+isin⁡(2πf0t+θ)]

上面最后一步得到了 Gabor 核的复数表示,我们就可以按实部和虚部将其拆分为实核和虚核,在很多应用中,我们只需要应用 Gabor核的实数部分即可:

{Gaborreal(t)=ω(at)cos(2πf0t+θ)Gaborimag(t)=ω(at)sin(2πf0t+θ) {Gaborreal(t)=ω(at)cos⁡(2πf0t+θ)Gaborimag(t)=ω(at)sin⁡(2πf0t+θ)

2.1.3 Gabor 核的傅里叶变换

将 Gabor 核(式 2 2)套入一维傅里叶变换(式 1 1)中,得到 Gabor 核的傅里叶变换:

Gabor^(f)=keiθ∫∞−∞e−i2πftω(at)s(t)dt=keiθ∫∞−∞e−i2π(f−f0)tω(at)dt=(k/a)⋅eiθ⋅ω^((f−f0)/a)(3)(4)(5)(3) (3)(3)Gabor^(f)=keiθ∫−∞∞e−i2πftω(at)s(t)dt(4)=keiθ∫−∞∞e−i2π(f−f0)tω(at)dt(5)=(k/a)⋅eiθ⋅ω^((f−f0)/a)

上式中出现了  ω^(f−f0a) ω^(f−f0a) 的形式,这里需要补充高斯核一个很有趣的性质: ω^(f)=ω(f)=e−πf2 ω^(f)=ω(f)=e−πf2,这个性质这里就不证明了,有兴趣的同学可以自己推导一下。根据这个性质,上式中的  ω^(f−f0a) ω^(f−f0a) 也可以写作  ω(f−f0a) ω(f−f0a),二者可以自由转换。

此外, 3 3式中的末尾,我们知道了Gabor核傅里叶变换后是这样一个形式: kaeiθω^(f−f0a) kaeiθω^(f−f0a),这个形式可以看做是一个复数波,它的幅度

A=∥∥Gabor^(f)∥∥=kaω^(f−f0a)=kaω(f−f0a) A=‖Gabor^(f)‖=kaω^(f−f0a)=kaω(f−f0a)

也就是说,Gabor核相当于在频率域应用了一个高斯核窗口。假设我们这时有了一个信号的频率域: fin(f) fin(f),那么我们直接用频率域的Gabor核  Gabor^ Gabor^ 与其相乘,就实现了对  f0 f0 频率邻域范围内的滤波效果:输入信号频率离这个 Gabor 核的  f0 f0 越远,则乘上Gabor核之后的结果就越小,尤其是当  fin fin 在  f0 f0 的  3σ 3σ 区间外时,这个频率几乎可以忽略不计。于是,最终能保留下来的信号就都是  f0 f0 频率附近的信号了。

这个想法,用公式表示出来就是:

Gabor^⋅fin^ Gabor^⋅fin^

从这个角度出发,给我们任意一个输入信号,我们先用傅里叶变换将其变换到频率域得到 fin^ fin^,再用 Gabor 核的傅里叶变换结果与之相乘,就是频域滤波的结果了。

不过我们大可不必这么麻烦,因为有卷积定理:

Gabor∗fin=Gabor^⋅fin^ Gabor∗fin=Gabor^⋅fin^

这样看来,我们只需要用 Gabor 核和输入信号卷积就可以得到输入信号在某频率邻域附近的响应结果!!

我们既可以用这个响应结果来实现频域滤波,又可以用它来描述信号的频率信息。下面要提到的Gabor特征,就是用Gabor核来描述信号的频率信息,从而作为信号的特征的。

2.2 二维 Gabor 变换

将上面的一维情况推广至二维:

2.2.1 二维傅里叶变换:

二维傅里叶变换定义如下:

f^(ξx,ξy)=∬f(x,y)e−i2π(ξxx+ξyy)dxdy f^(ξx,ξy)=∬f(x,y)e−i2π(ξxx+ξyy)dxdy

为了简洁,改用  (u0,v0) (u0,v0) 来代替  (ξx,ξy) (ξx,ξy),则上式可写为:

f^(u0,v0)=∬f(x,y)exp(−i2π(u0x+v0y))dxdy(4) (4)f^(u0,v0)=∬f(x,y)exp⁡(−i2π(u0x+v0y))dxdy

提醒一下,这里  (x,y) (x,y) 表示空域坐标, (u0,v0) (u0,v0) 表示频域坐标。

2.2.2 二维复数波

二维复数波完整定义如下(用复指数形式表示):

s(x,y)=exp(i(2π(u0x+v0y)+P)) s(x,y)=exp⁡(i(2π(u0x+v0y)+P))

由于初始相位对Gabor核影响不大,因此可以将其省略,得到更简洁的形式(论文中关于 Gabor 函数的定义各不一样,主要是这些细节的考虑不同):

s(x,y)=exp(i(2π(u0x+v0y))) s(x,y)=exp⁡(i(2π(u0x+v0y)))

2.2.3 二维高斯函数

二维高斯函数定义如下:

ω(x,y,σx,σy)=Kexp(−π(x−x0)2/σ2x+(y−y0)2/σ2y)(5) (5)ω(x,y,σx,σy)=Kexp⁡(−π(x−x0)2/σx2+(y−y0)2/σy2)

其中, σx,σy σx,σy 分别为两个方向上的尺度参数(scaling parameters),用来控制高斯函数在两个方向上的“展布”形状。 (x0,y0) (x0,y0) 为高斯函数的中心点。 K K 为常数。

考虑全面的话,高斯函数还要有(顺时针)旋转,即:

{(x−x0)r=(x−x0)cosθ+(y−y0)sinθ(y−y0)r=−(y−y0)sinθ+(y−y0)cosθ {(x−x0)r=(x−x0)cos⁡θ+(y−y0)sin⁡θ(y−y0)r=−(y−y0)sin⁡θ+(y−y0)cos⁡θ

加入旋转参数后的二维高斯函数为:

ωr(x,y,θ,σx,σy)=Kexp(−π(x−x0)2r/σ2x+(y−y0)2r/σ2y) ωr(x,y,θ,σx,σy)=Kexp⁡(−π(x−x0)r2/σx2+(y−y0)r2/σy2)

二维高斯

上图即是一个二维高斯核的图像,该高斯核中, (x0,y0)=(0,0) (x0,y0)=(0,0), (σ2x,σ2y)=(50,40) (σx2,σy2)=(50,40), θ=−45° θ=−45°

从图像可以看出, σx和σy σx和σy分别控制了高斯两个方向的“展布”情况。

2.2.4 Gabor 滤波器核

类似一维 Gabor 核,我们将二维高斯函数与二维复数波相乘,就得到了二维的Gabor核:

Gabor(x0,y0,θ,σx,σy,u0,v0)=s(x,y)ωr(x,y)=Kexp(−π((x−x0)2r/σ2x+(y−y0)2r/σ2y))exp(i2π(u0x+v0y))(6)(7) (6)Gabor(x0,y0,θ,σx,σy,u0,v0)=s(x,y)ωr(x,y)(7)=Kexp⁡(−π((x−x0)r2/σx2+(y−y0)r2/σy2))exp⁡(i2π(u0x+v0y))

它的各个参数含义如下:

  • (x0,y0) (x0,y0): 高斯核的中心点
  • θ θ: 高斯核的旋转方向(顺时针)
  • (σx,σy) (σx,σy): 高斯核两个方向上的尺度
  • (u0,v0) (u0,v0): 频域坐标
  • K K: 高斯核的幅度(magnitude)的比例

Gabor 核频率域图示

上图为Gabor核在频率域中的图示,这个Gabor核就是从之前那个高斯核得到的,其参数分别为: u0=v0=1/80 u0=v0=1/80, x0=y0=0 x0=y0=0, σ2x=50 σx2=50, σ2y=40 σy2=40, θ=−45° θ=−45°, F0=2–√/80 F0=2/80, ω0=45° ω0=45°。

Gabor 核空间域图示

上图为Gabor核在空间域中的图示,参数和上面那个Gabor核一样。图像左边是实部,右边是虚部。这样的Gabor核与图像进行卷积,我们便能得到图像在 (u0,v0) (u0,v0)频率附近的响应情况。在图像处理中,通常使用Gabor的实部进行卷积就可以。

三、Gabor 核作为图像特征

通过上面的分析,我们知道了,一个Gabor核能获取到图像某个频率邻域的响应情况,这个响应结果可以看做是图像的一个特征。那么,我们如果用多个不同频率的Gabor核去获取图像在不同频率邻域的响应情况,最后就能形成图像在各个频率段的特征,这个特征就可以描述图像的频率信息了

一系列 Gabor 核

上图展示了一系列具有不同频率的 Gabor 核,用这些核与图像卷积,我们就能得到图像上每个点和其附近区域的频率分布情况。

由于纹理特征通常和频率相关,因此Gabor核经常用来作为纹理特征。又因为字符识别问题通常都是识别纹理的过程,所以Gabor核在光学字符识别(OCR)系统中也有广泛应用。

写在最后

由于本人对信号处理不是太了解,因此对傅里叶变换、频率域的理解都是个人粗浅的理解。为了完成这篇文章,我学习了很多信号处理的知识,重新理解了一些基本概念,看别人的帖子建立过一些认识,随后这层理解不牢又被推翻,再重新建立……前前后后用了一周的时间才最终完成。如有不严谨或错误的地方,还请大家谅解。要严肃学习的话最好还是看权威教材、看论文,我这篇文章可以作为另一个角度的补充。

参考资料

  1. 中文维基百科 / 傅里叶变换
  2. 韩昊同学对傅里叶变换的直观解释
  3. 中文维基百科 / 卷积定理
  4. 英文维基百科 / Gabor_filter
  5. 英文维基百科 / Gabor_transform
  6. Movellan J R. Tutorial on Gabor filters[J]. Open Source Document, 2002.
  7. Idrissa M, Acheroy M. Texture classification using Gabor filters[J]. Pattern Recognition Letters, 2002, 23(9): 1095-1102.

版权声明

本文所有文字版权均属本人所有,如需转载请注明来源。

Gabor滤波器为什么能实现频率域加窗相关推荐

  1. 【图像处理:频率域平滑与锐化】理想滤波器,巴特沃思滤波器,高斯滤波器

    [频率域平滑.锐化滤波器]理想滤波器,巴特沃思滤波器,高斯滤波器 一.背景知识 二.理想滤波器原理及实现 1.理想低通滤波器 2.理想低通滤波器的实现: 3.理想高通滤波器: 三.巴特沃思滤波器原理及 ...

  2. 从空间滤波器获得频率域滤波器

    结论:效果相差不大,空域滤波器和频域滤波器对图像的处理结果 文章目录 一.概念 二.空间滤波和频率域滤波的比较 一.概念 本节讨论的主题: (1) 如何将空间滤波器转换为等同的频率域滤波器 (2) 如 ...

  3. gabor特征 gabor滤波器

    gabor特征 Gabor 特征是一种可以用来描述图像纹理信息的特征,Gabor 滤波器的频率和方向与人类的视觉系统类似,特别适合于纹理表示与判别.Gabor 特征主要依靠 Gabor 核在频率域上对 ...

  4. Gabor滤波器学习

    本文的目的是用C实现生成Gabor模版,并对图像卷积.并简单提一下,Gabor滤波器在纹理特征提取上的应用. 一.什么是Gabor函数(以下内容含部分翻译自维基百科) 在图像处理中,Gabor函数是一 ...

  5. Gabor滤波器学习 综合多篇关于Gabor滤波器的博客总结

    一.什么是Gabor函数(以下内容含部分翻译自维基百科) 在图像处理中,Gabor函数是一个用于边缘提取的线性滤波器.Gabor滤波器的频率和方向表达同人类视觉系统类似.研究发现,Gabor滤波器十分 ...

  6. 基于Gabor滤波器的人脸特征提取

    Gabor小波变换的核函数,其最大的特点是其与人脑的皮层神经细胞的二维反射区具有相似的特征.基于Gabor小波变换的特征信息能够有效提取各种细节结构信息,因此Gabor小波变换在图像识别领域有着较为广 ...

  7. 数字图像处理——第四章 频率域滤波

    数字图像处理--第4章 频率域滤波 文章目录 数字图像处理--第4章 频率域滤波 频率域 1.傅里叶级数原理 1.1.一维傅里叶变换 1.2.二维傅里叶变换 2.python×傅里叶级数 2.1.傅里 ...

  8. 频率域滤波matlab函数,6、频率域滤波

    1.基础 卷积定理 折叠误差补零 当处理DFT时,图像及其变换是周期的.在周期接近函数非零部分的持续周期时,对周期函数进行卷积会引起相邻周期的串扰. 这种称为 折叠误差 的串扰可通过补零方法来避免. ...

  9. 生物特征识别中的Gabor滤波器

    Daugman(1980)提出的2D Gabor滤波器(以下简称Gabor滤波器),在纹理分类.纹理分割.生物特征识别中取得了广泛的应用.本文首先简要介绍Gabor滤波器,然后列举它在生物特征识别方面 ...

最新文章

  1. 【Python】多种方式实现生成验证码
  2. CentOS 6.4 配置LAMP 环境 与安装 phpmyadmin
  3. 用python做tkinter_Python下用Tkinter进行GUI编程
  4. 20本重磅图书等你认领:前沿、创业、个人成长全有了
  5. [mystery]-加密解密整理
  6. LeetCode刷题——392. 判断子序列
  7. [No000083]文件与文件夹操作
  8. windows 安装Rabbit MQ
  9. 用android编写使用按钮ImageButton和切换器ImageSwitcher
  10. java控制台通讯录
  11. Python 各种画图
  12. 从购买域名到nginx,flask搭建自己的网站
  13. 积极为开发者提供开源客服系统,春松客服得到有味生活3D商城认可
  14. 局域网资产发现过程(利用工具nmap、masscan)
  15. Egret eui.TextInput组件输入后未清掉焦点,微信浏览器切换后台再切回,点击会一直唤醒输入法的Bug
  16. 几款软件,内有很多人求而不得的破解版TeamViewer
  17. ASFG - AI可以帮你自动生成字幕文件
  18. 新编好的大盘指数预测程序,欢迎关注
  19. 使用OGG/Kettle实现Oracle到MySQL数据平滑迁移
  20. 二次元个人主页html源码

热门文章

  1. sequoia 安装配置
  2. MeSH 医学主题词数据库
  3. 树莓派 配置USB麦克风声卡
  4. 如何将彩色证件照调成黑白
  5. C# 打印文档(word文档)
  6. HTML Hover 的巧用。
  7. substr函数功能
  8. centos7安装xterm_CentOS 7使用x-manager中Xstart最新工具报缺少xterm包错误
  9. 基础知识 | 近似误差 估计误差
  10. 三相桥式全控整流电路simulink仿真_可控硅整流器