如何理解Gabor滤波器

Gabor Filters 它具有在空间域中产生正弦波的形状,并具有在频率域中集中能量的特性。Gabor滤波器通过对图像进行卷积操作,可以提取与Gabor函数匹配的纹理和边缘信息。通过调整滤波器参数和在图像上进行卷积操作,可以获取Gabor滤波器的响应图像,从而用于后续的图像处理和分析任务。Gabor滤波器的选择性使得它对于缺乏纹理、非刚性和稀疏的医学图像具有较好的适应性。在使用Gabor滤波器时,通常需要设置滤波器的频率、方向、尺度等参数,以便根据具体应用的需求来调整滤波器的特性。,以减少图像处理的计算量,同时保持合理的检索性能。 阅读详情

转载自:(https://blog.youkuaiyun.com/xue_wenyuan/article/details/51533953).

介绍

我们已经知道,傅里叶变换是一种信号处理中的有力工具,可以帮助我们将图像从空域转换到频域,并提取到空域上不易提取的特征。但是经过傅里叶变换后,图像在不同位置的频度特征往往混合在一起,但是Gabor滤波器却可以抽取空间局部频度特征,是一种有效的纹理检测工具。

Alt

Figure 1. A sinusoid and it's Fourier spectrum

如何生成一个Gabor滤波器

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

Figure 2. Gabor filter composition: (a) 2D sinusoid oriented at 30◦ with the x-axis, (b) a Gaussian kernel, (c) the corresponding Gabor filter. Notice how the sinusoid becomes spatially localized.

Gabor核函数

二维Gabor核函数由一个高斯函数和一个余弦函数相乘得出,其中 θ , ϕ , γ , λ , σ \theta,\phi,\gamma,\lambda,\sigma θ,ϕ,γ,λ,σ 为参数。

(1) g λ , θ , ϕ , γ , σ ( x , y ) = e − x ′ 2 + γ 2 y ′ 2 2 σ 2 c o s ( 2 π x ′ λ + ϕ ) g_{\lambda,\theta,\phi,\gamma,\sigma}(x,y)=e^{-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}}cos(2\pi \frac{x'}{\lambda}+\phi) \tag{1} gλ,θ,ϕ,γ,σ​(x,y)=e−2σ2x′2+γ2y′2​cos(2πλx′​+ϕ)(1)

x ′ = x c o s θ + y s i n θ x'=xcos\theta+ysin\theta x′=xcosθ+ysinθ

y ′ = − x s i n θ + y c o s θ y'=-xsin\theta+ycos\theta y′=−xsinθ+ycosθ

在OpenCV中的getGaborKernel函数里需要传入的参数除了上述5个外,还需要传入卷积核的大小。

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

在这里插入图片描述

Figure 3. The Gabor Filter in frequency with the orientation of 0°, 45°, 90°.

参数

Orientation θ \theta θ

θ \theta θ 表示Gabor滤波核中平行条带的方向,有效值为从0~360度的实数。
在这里插入图片描述

Phase offset ϕ \phi ϕ

ϕ \phi ϕ 表示Gabor核函数中余弦函数的相位参数,有效值为-180度~180度,0度和180度对应的方程与原点对称,-90度和90度的方程分别于原点成中心对称,可两项直角坐标系中的余弦函数。
在这里插入图片描述

Aspect ratio γ \gamma γ

γ \gamma γ, 纵横比,更准确的应称为空间纵横比,表示Gabor滤波器的椭圆度。
在这里插入图片描述

Wavelength λ \lambda λ

λ \lambda λ 表示Gabor核函数中余弦函数的波长参数,有效值应大于2,以像素为单位。
在这里插入图片描述

The standard deviation σ \sigma σ

σ \sigma σ 表示Gabor核函数中高斯函数的标准差,该参数决定了Gabor滤波核可接受区域的大小, σ \sigma σ不能被直接指定,其值与 b b b(Bandwidth)和 λ \lambda λ有关。
Bandwidth( b b b)表示高低频率之差。在实际选取Gabor滤波核中,我们会选取频域中半响应空间频度带宽(the half-response spatial frequency bandwidth),或者半峰量级(the half-peak magnitude),他们都指的是频域中Bandwidth/2的空间位置。 b b b, λ \lambda λ 和 σ \sigma σ 的关系如下:

(2) b = l o g 2 σ λ π + l n 2 2 σ λ π − l n 2 2 b=log_{2}\frac{\frac{\sigma}{\lambda}\pi+\sqrt{\frac{ln2}{2}}}{\frac{\sigma}{\lambda}\pi-\sqrt{\frac{ln2}{2}}}\tag{2} b=log2​λσ​π−2ln2​ ​λσ​π+2ln2​ ​​(2)

(3) σ λ = 1 π l n 2 2 ⋅ 2 b + 1 2 b − 1 \frac{\sigma}{\lambda}=\frac{1}{\pi}\sqrt{\frac{ln2}{2}}\cdot \frac{2^b+1}{2^b-1} \tag{3} λσ​=π1​2ln2​ ​⋅2b−12b+1​(3)

在这里插入图片描述

演示

这里用一张程序运行动态图可以清楚的显示出Gabor滤波核随各个参数变化的情况。
在这里插入图片描述

如何设计Gabor滤波器来提取特征

为了充分利用Gabor滤波器的特点,我们必然需要设计不同方向,不同尺度的GaborL滤波器来提取特征,[2]中提到了如下策略来使滤波器尽量无重叠覆盖频域中的各个方向:

“Then the design strategy is to ensure that the half-peak magnitude support of the filter responses in the frequency spectrum touch each other .”

在这里插入图片描述
首先通过如下公式计算出 a , σ x , σ y , a,\sigma_x,\sigma_y, a,σx​,σy​,其中 U h , U l U_h,U_l Uh​,Ul​分别表示滤波器的中心频度,及波长 λ \lambda λ的倒数, K K K为方向的数量, S S S为尺度的数量。
(3) a = ( U h U l ) 1 S − 1 a=(\frac{U_h}{U_l})^{\frac{1}{S-1}} \tag{3} a=(Ul​Uh​​)S−11​(3)

(4) σ μ = ( a − 1 ) U h ( a + 1 ) 2 l n 2 \sigma_\mu=\frac{(a-1)U_h}{(a+1)\sqrt{2ln2}} \tag{4} σμ​=(a+1)2ln2 ​(a−1)Uh​​(4)

(5) σ v = t a n ( π 2 K ) [ U h − 2 l n ( 2 σ μ 2 U h ) ] [ 2 l n 2 − ( 2 l n 2 ) 2 σ μ 2 U h 2 ] − 1 2 \sigma_v=tan(\frac{\pi}{2K})[U_h-2ln(\frac{2\sigma_\mu^2}{U_h})][2ln2-\frac{(2ln2)^2\sigma_\mu^2}{U_h^2}]^{-\frac{1}{2}} \tag{5} σv​=tan(2Kπ​)[Uh​−2ln(Uh​2σμ2​​)][2ln2−Uh2​(2ln2)2σμ2​​]−21​(5)

(6) σ μ = 1 2 π σ x , σ v = 1 2 π σ y \sigma_\mu=\frac{1}{2\pi\sigma_x},\sigma_v=\frac{1}{2\pi\sigma_y} \tag{6} σμ​=2πσx​1​,σv​=2πσy​1​(6)

然后将上述结果带入下列Gabor核函数方程,从而求得Gabor卷积核上某点的值。其中 m = 0 , 1 , . . . , S − 1 ; n = 0 , 1 , . . . , K − 1 ; θ = n π / K m=0,1,...,S-1;n=0,1,...,K-1;\theta=n\pi/K m=0,1,...,S−1;n=0,1,...,K−1;θ=nπ/K
(7) g m n ( x , y ) = a − m g ( x ′ , y ′ ) , a > 1 , m , n = i n t e g e r g_{mn}(x,y)=a^{-m}g(x',y'), a>1, m,n=integer \tag{7} gmn​(x,y)=a−mg(x′,y′),a>1,m,n=integer(7)

(8) g ( x , y ) = ( 1 2 π σ x σ y ) e [ − 1 2 ( x 2 σ x 2 + y 2 σ y 2 ) + 2 π j W x ] g(x,y)=(\frac{1}{2\pi\sigma_x\sigma_y})e^{[-\frac{1}{2}(\frac{x^2}{\sigma_x^2}+\frac{y^2}{\sigma_y^2})+2\pi jWx]} \tag{8} g(x,y)=(2πσx​σy​1​)e[−21​(σx2​x2​+σy2​y2​)+2πjWx](8)

(9) x ′ = a − m ( x c o s θ + y s i n θ ) , y ′ = a − m ( − x c o s θ + y s i n θ ) x'=a^{-m}(xcos\theta+ysin\theta), y'=a^{-m}(-xcos\theta+ysin\theta) \tag{9} x′=a−m(xcosθ+ysinθ),y′=a−m(−xcosθ+ysinθ)(9)
但是在OpenCV中的Gabor核函数采用式(1)的形式,因此我们需要对两种不同表达的Gabor核函数中的参数进行一些转换。比较两种表达式,不难看出,式(8)中的 2 π j W x ′ 2\pi jWx' 2πjWx′是一个复数形式,可以分解成正余弦和的形式,与式(1)中的余弦函数部分相对应,式(8)最前端的部分为幅度。因此两种形式的主要区别在于高斯函数的指数以及 x ’ x’ x’的表达不同。通过如下转换,就可以将式(8)中的参数转换成式(1)中的参数。
在这里插入图片描述
在这里插入图片描述

不同的卷积核(kernel size)大小对Gabor滤波核的影响

如果卷积核的边长小于波长,那么整个波形不能包括在卷积核中,使得波形边缘的滤波效果起不到作用。相反,如果如果卷积核的边长大于波长,则不会对滤波器产生什么影响。

相位变化对Gabor滤波核的影响

通过相位变化可以改变滤波核中心点的波形,如果滤波核中心点正对波峰( ϕ = 0 \phi=0 ϕ=0),则会对整张图像起到加强的作用,如果滤波核中心点正对波谷( ϕ = 180 \phi=180 ϕ=180),则会对整张图像起到减弱的作用。我们应当避免滤波核中心点的波形位于零交叉点,因为这样我们可能会看不到滤波器的任何效果。

References

[1] Prasad V S N, Domke J. Gabor filter visualization[J]. J. Atmos. Sci, 2005, 13.

[2] Manjunath B S, Ma W Y. Texture features for browsing and retrieval of image data[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 1996, 18(8): 837-842.

[3] Movellan J R. Tutorial on Gabor filters[J]. Open Source Document, 2002.

[4] Celik T, Lee H K, Petznick A, et al. Bioimage informatics approach to automated meibomian gland analysis in infrared images of meibography[J]. Journal of optometry, 2013, 6(4): 194-204.

[5] Cheng E, Du L, Wu Y, et al. Discriminative vessel segmentation in retinal images by fusing context-aware hybrid features[J]. Machine Vision and Applications, 2014, 25(7): 1779-1792.

[6] Advances in Digital Document Processing and Retrieval[M]. World Scientific, 2013.

[7] 孔锐, 张冰. Gabor 滤波器参数设置[J]. 控制与决策, 2012, 27(8): 1277-1280.

Useful Web Sites

http://www.cs.rug.nl/~imaging/simplecell.html
http://www.juergenwiki.de/work/wiki/doku.php?id=public:gabor_filter
http://blog.163.com/hulin_feng/blog/static/9235253201231453211288/
帮助理解Gabor滤波器的有关文档,以及Gabor滤波器的可视化程序已经上传到Github.
以上内容编辑:崔健棣

图像处理:Gabor滤波器简介以及python实现 Gabor filter and python implementation 阅读详情

相关推荐

Gabor滤波器及Gabor特征提取

1.Gabor变换简介该部分主要摘自:Gabor滤波进行目标图像纹理特征的提取。说起Gabor变换就得先从Fourier变换说起。傅里叶变换是线性系统分析的有力工具,提供了一种把时域信号转换到频域进行分析的途径,时域和频域之间是一对一的映射关系。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对 于地表属...

生命在于折腾! 9944

图像处理之Gabor滤波器(C++)

Gabor滤波器是一个用于边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,而且对于光照变化不敏感,十分适合纹理特征分析。本文介绍了Gabor原理以及C++实现的Gabor的过程。

qq_45045175的博客 3389

400G光模块测试全攻略:从PCS层到CMIS合规的避坑指南

本文为网络设备测试工程师和光通信研发人员提供了一份详尽的400G光模块测试实战指南。文章深入剖析了从PCS层信号完整性、FEC容限到CMIS管理接口合规性测试的全流程,并分享了ANLT协议分析、SerDes眼图调试以及系统级流量压力测试中的核心技巧与常见避坑点,旨在帮助读者构建一套高效、精准的测试体系,确保高速光模块的可靠性与性能。

weixin_29300931的博客 216

标准的Gabor滤波器及Log_Gabor滤波器的实现、解析、速度优化及其和Halcon中gen_gabor的比较。

最近有朋友在研究Halcon中gen_gabor的函数,和我探讨,因为我之前也没有怎么去关注这个函数,因此,前前后后大概也折腾了有一个星期去模拟实现这个东西,虽然最终没有实现一模一样的这个函数,但是也是有所收获,这里做一点总结,也算是最这个函数有个完美的收尾吧。

PixelDemon的博客 3847

Windows(Win10、Win11)本地部署开源大模型保姆级教程

最近开源大模型可谓闹的沸沸扬扬,尤其是Microsoft开源的和Meta开源的llama3 70b,评测都已经接近了的水平。鉴于还有很多同学不会在上部署和使用本地模型,因此我们出一期保姆级教程。本文讲述了如何在上本地部署大模型。从最基础的软件安装到环境配置都进行了截图展示,希望对非计算机的同学也有所帮助。AI时代我们每个人都必须要掌握一些AI知识,相信不断学习的你一定不会被AI淘汰。这只是开始,后面我们还有很多工作要做,尤其是提示词和智能体。

AIGIS的博客 3万+

Qt QChart实战:从零打造一个实时温度监控仪表盘(附完整源码)

本文详细介绍了如何使用Qt QChart模块从零构建一个工业级实时温度监控仪表盘。通过实战案例,展示了波形图的绘制、坐标轴配置、数据流模拟等关键技术,并提供了完整的源码实现,帮助开发者快速掌握Qt在数据可视化领域的应用。

weixin_42537919的博客 246

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

二维Gabor滤波器在生物特征识别领域取得了广泛的应用。

minutiae的专栏 3538

阿里云天池大数据长期赛:金融风控-贷款违约预测(含代码)

本次比赛让自己在大数据的处理流程上有了更明确的认知,从数据清洗、特征工程、数据建模,每一个过程都能学到很多经验和知识,值得去历练。

weixin_46685991的博客 1万+

Gabor滤波器通俗理解

转自:http://xuewenyuan.github.io/2016/05/27/How-To-Understand-Gabor-Filter/ 介绍 我们已经知道,傅里叶变换是一种信号处理中的有力工具,可以帮助我们将图像从空域转换到频域,并提取到空域上不易提取的特征。但是经过傅里叶变换后,图像在不同位置的频度特征往往混合在一起,但是Gabor滤波器却可以抽取空间局部频度特征,是一种

尼古拉斯康康 7145

腾讯游戏安全组件运行异常的全面解决方案

在使用腾讯游戏时,玩家可能会遭遇游戏安全组件运行异常的问题,这不仅影响游戏的正常启动,还可能在游戏过程中引发一系列问题。本文将详细介绍解决腾讯游戏安全组件运行异常的几种方法,帮助玩家重拾游戏乐趣。腾讯游戏安全组件运行异常是一个复杂的问题,可能涉及服务设置、游戏更新、系统环境优化以及硬件与驱动检查等多个方面。最后,希望本文能帮助玩家顺利解决腾讯游戏安全组件运行异常的问题,让玩家能够无忧无虑地享受游戏带来的乐趣。首先,我们需要从系统的服务管理入手,检查与游戏安全组件相关的服务是否正常运行。

nntxthml的博客 5820

用 OP-TEE 给 AI 模型“上锁”:密文存储、TEE 解密放行、推理后销毁(实战可落地)

本文提出一种基于OP-TEE的AI模型保护方案,通过两级密钥体系确保模型静态存储为密文,运行时仅在TEE内解密。方案采用KEK+DEK架构,DEK永不出TEE,支持分块解密与可验证擦除。该方案能有效防御静态分析、应用层逆向等威胁,但需承认其物理级攻击的局限性。文章详细描述了端到端架构、文件格式设计及TA实现要点,包括密钥管理、分块解密策略和销毁机制,为设备侧AI部署提供了工程可行的安全解决方案。

Interview_TC的博客 292

Gabor滤波器的理解

搬以前写的博客【2014-02-28 20:03】 关于Gabor滤波器是如何提取出特征点,这个过程真是煎熬。看各种文章,结合百度、文章内部的分析才有一点点明白。 Gabor滤波器究竟是什么? 很多表述说的是加窗傅里叶变换。怎么理解呢?公式有下面几种表述: (1) (2)(3) 文章中的和第三种最相似,那么我理解是...

weixin_30840573的博客 559

2025年前端框架全景解析:React、Vue、Angular的生态与未来之争

前端框架的竞争本质是工程哲学的分野:React的灵活、Vue的简洁、Angular的严谨,分别对应不同场景需求。

科技D人生 4845

Gabor滤波器与特征提取

一、Gabor滤波器 Gabor滤波器,最主要使用优势体现在对物体纹理特征的提取上。二维Gabor基函数能够很好地描述哺乳动物初级视觉系统中一对简单视觉神经元的感受野特性。随着小波变换和神经生理学的发展,Gabor变换逐渐演变成二维Gabor小波的形式。Gabor滤波器对于图像的亮度和对比度变化以及人脸姿态变化具有较强的健壮性,并且它表达的是对人脸识别最为有用的局部特征,故在计算机视觉及纹理分析中

计算机视觉算法、工程、产品 2万+

《手把手教你YOLOv9实战》,改进专栏目录

为了提供友好的操作效果,本专栏将会手把手搭建可视化界面,我将用PyQt5 搭建一个可视化界面,可视化界面能够实现基本的图像加载与检测功能,如支持视频、摄像头,还支持更换不同的 YOLOv9 模型,并适应不同领域(如口罩检测系统、人脸检测系统、工业缺陷检测系统等),界面灵活、功能强大。通过YOLOv9加以改进设计,形成新的算法框架,一起水科研和论文,专栏会一直持续更新中,本专栏适合目标检测、分割、分类。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2161

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

matlab gabor 滤波器

gabor:Create Gabor filter or Gabor filter bank g = gabor(wavelength,orientation)

3011

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

gabor滤波器

https://blog.youkuaiyun.com/u013709270/article/details/49642397 https://github.com/xuewenyuan/Gabor_Visualization https://blog.youkuaiyun.com/u013709270/article/details/49642397 第三种 使用的第三种gabor模型: ...

dibuxue3246的博客 606

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

gabor优化 matlab,matlab兑现gabor filter (8) 效果很好

matlab实现gabor filter (8) 效果很好gabor 滤波器函数:function gb=gabor_fn(bw,gamma,psi,lambda,theta)% bw = bandwidth, (1)% gamma = aspect ratio, (0.5)% psi = phase shift, (0)% lambda= wave length, (>=2)% ...

weixin_36329414的博客 153

gabor 变换matlab,Gabor变换到底是什么鬼?

欲讲gabor,必须先看下傅里叶变换有什么缺点!1.傅里叶变换1) 简介数字图像处理的方法主要分成两大部分:空域分析法和频域分析法。空域分析法就是对图像矩阵进行处理;频域分析法是通过图像变换将图像从空域变换到频域,从另外一个角度来分析图像的特征并进行处理。频域分析法在图像增强、图像复原、图像编码压缩及特征编码压缩方面有着广泛应用。如果一个信号f(t)在上满足: ① f(t)在任一有限区间上满足狄...

weixin_28991715的博客 2038

讨论记录:gabor变换

2008-01-10 19:03:05 百合—lily我想问问你Gabor的参数问题 2008-01-10 19:03:14 百合—lily你是确定哪几个参数? 2008-01-10 19:03:41 百合—lily我现在看文章看的糊涂了 2008-01-10 19:04:02 柳锋% I      输入待滤波图像% Sx,Sy  滤波窗口大小% f      滤波频率% theta 

重剑无锋 5815

Gabor filter可视化项目报告

我们将呈现一个重要的信号处理技术----- 一个 Gabor 过滤器序列与一个图片的响应关系的 可视化系统。在做这个之前, 一个必须被克服的问题是在一个静态的图像中,没有办法呈现多维空间。 我们使用一个交互式的工具去改变投影维度的可视范围, 并且附加上在这个投影维度总结关系的图像 这样,即使我们通过2维投影观察这个4维信号空间 我们也能让用户理解所有的维度,而不止是这个投影的平面。 我们发现这个实现了的系统在对于更好的理解Gabor滤波器反映是有所帮助的。 我们认为 相关的交互式工具和总结图表的使用可能在更

bnrmaster的博客 3957

CVPR读书笔记[4]:Gabor特征提取之Gabor核

CVPR读书笔记[4]:Gabor特征提取之Gabor核   朱金华 jinhua1982@gmail.com 2014.08.09     本文是Gabor特征提取三部分之一: [1]CVPR读书笔记[4]:Gabor特征提取之Gabor核 http://blog.youkuaiyun.com/njzhujinhua/article/details/38460861 [2] CVPR读书...

iteye_5573的博客 832

matlab nstds,matlab实现gabor filter (3) | 学步园

从wikipedia上找到一段gabor filter的代码,简单的写了生成5个尺度8个方向的滤波器组。gabor filter的代码:% 这个gabor实现是来自维基百科的,应该没有问题% watkinsfunction gb=gabor(sigma,theta,lambda,psi,gamma)sigma_x = sigma;sigma_y = sigma/gamma;% Bounding b...

weixin_36238568的博客 113
上一篇: GitHub(网页版)简明教程
下一篇: [AI教程]TensorFlow入门:Hello World与基本操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值