Gabor滤波器及其在OpenCV中的使用

因为最近毕设要用到 Gabor 特征提取,所以来总结一下对 Gabor 滤波器的理解,以及在 OpenCV 中的应用。

1 对 Gabor 滤波器的理解

Fourier 变换是一种信号处理中的有力工具,可以将图像从空域转换到频域,并提取到空域上不易提取的特征。但是 Fourier 变换缺乏时间和位置的局部信息。

Gabor 变换是一种加窗短时 Fourier 变换(简单理解起来就是在特定时间窗内做 Fourier 变换),是短时 Fourier 变换中当窗函数取为高斯函数时的一种特殊情况。因此,Gabor 滤波器可以在频域不同尺度、不同方向上提取相关的特征。另外 Gabor 函数与人眼的生物作用相仿,所以经常用作纹理识别上,并取得了较好的效果。

在二维空间中,使用一个三角函数(如正弦函数)与一个高斯函数叠加,我们就得到了一个 Gabor 滤波器。如下图所示:

感觉这个图画的好生动啊!一下子就看懂了

2 Gabor 函数以及参数含义

二维 Gabor 函数的数学表达如下(OpenCV 里好像只用到了实数部分):

复数表达

实数部分

虚数部分

其中


下面介绍公式中各个参数的含义:

波长 (λ):表示 Gabor 核函数中余弦函数的波长参数。它的值以像素为单位指定,通常大于等于2,但不能大于输入图像尺寸的五分之一。

方向 (θ):表示 Gabor 滤波核中平行条带的方向。有效值为从0到360度的实数。

相位偏移 (φ):表示 Gabor 核函数中余弦函数的相位参数。它的取值范围为-180度到180度。其中,0度和180度对应的方程与原点对称,-90度和90度的方程分别于原点成中心对称。

长宽比 (γ):空间纵横比,决定了 Gabor 函数形状的椭圆率。当 γ=1 时,形状是圆的;当 γ<1 时,形状随着平行条纹方向而拉长。通常该值为0.5。

带宽 (b):Gabor 滤波器的半响应空间频率带宽 b 和 σ/ λ 的比率有关,其中 σ 表示 Gabor 函数的高斯因子的标准差。三者的关系如下:

σ 的值不能直接设置,它仅随着带宽 b 变化。带宽值必须是正实数,通常为1,此时,标准差和波长的关系为 σ=0.56λ。带宽越小,标准差越大,Gabor 形状越大,可见平行条纹数量越多。

3 在 OpenCV 中使用 Gabor 滤波

我在网上看到好多 OpenCV 的代码实现的 Gabor 函数,但是其实可以利用 OpenCV 的库函数,实现起来非常简单,只要几行代码。

主要的函数有以下两个:

CV_EXPORTS_W Mat getGaborKernel( Size ksize, double sigma, double theta, 
    double lambd, double gamma, double psi = CV_PI*0.5, int ktype = CV_64F );

CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth,
    InputArray kernel, Point anchor = Point(-1,-1), double delta = 0, 
    int borderType = BORDER_DEFAULT );

(哈哈哈,学会插入代码了!爱上了 Markdown 编辑器)

getGaborKernel 函数生成了一个 Gabor 滤波的核,也就是相当于一个模板。参数参见上面的说明。

filter2D 函数实现卷积运算。其中参数 ddepth 表示目标图像深度,ddepth=-1 表示生成与原图像深度相同的图像。

4 效果展示

我用了一张视频截图来做的滤波,识别文字的效果还是蛮好的。

原图

滤波后的图片

撒老师的表情非常适合做滤波,2333


参考:
https://blog.csdn.net/jolly12191/article/details/46428107
https://blog.csdn.net/xue_wenyuan/article/details/51533953
https://blog.csdn.net/jinshengtao/article/details/17797641
https://www.cnblogs.com/sdlypyzq/p/4378309.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • Gabor函数是一个用于边缘提取的线性滤波器,十分适合纹理表达和分离,其频率和方向表达同人类视觉系统类似。另外从生...
    sunsimple阅读 3,124评论 0 0
  • 一、傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚...
    constant007阅读 4,403评论 1 10
  • 这些年计算机视觉识别和搜索这个领域非常热闹,后期出现了很多的创业公司,大公司也在这方面也花了很多力气在做。做视觉搜...
    方弟阅读 6,444评论 6 24
  • 通常,大家在刚刚接触水晶的时候,会用水晶的品种来定义水晶的作用。 依据颜色来划分,有白水晶、粉水晶、紫水晶等;依据...
    盖亚的礼物阅读 5,617评论 1 8