Gabor滤波器原理

一、什么是Gabor函数(以下内容含部分翻译自维基百科)

       在图像处理中,Gabor函数是一个用于边缘提取的线性滤波器。Gabor滤波器的频率和方向表达同人类视觉系统类似。研究发现,Gabor滤波器十分适合纹理表达和分离。在空间域中,一个二维Gabor滤波器是一个由正弦平面波调制的高斯核函数。

       还有,生物学实验发现,Gabor滤波器可以很好地近似单细胞的感受野函数(光强刺激下的传递函数),什么视皮层内的超柱,......总之是这方面仿生的数学模型。

       另外,网上有一种说法,gabor分为实部和虚部,用实部进行滤波后图像会平滑;虚部滤波后用来检测边缘。我查了文献,发现的确有人用Gabor的奇函数部分做边缘提取(《基于Gabor滤波器的边缘检测算法》 无线电工程 2000年第3卷第30期)。另外,从我的实验结果也有类似的发现。暂且认为这个对的吧。

       Gabor滤波器的脉冲响应,可以定义为一个正弦波(对于二维Gabor滤波器是正弦平面波)乘以高斯函数。由于乘法卷积性质,Gabor滤波器的脉冲响应的傅立叶变换是其调和函数的傅立叶变换和高斯函数傅立叶变换的卷积。该滤波器由实部和虚部组成,二者相互正交。一组不同频率不同方向的Gabor函数数组对于图像特征提取非常有用。

 

下面给出二维Gabor函数的数学表达:

复数表达:

实数部分:

虚数部分:

   

其中:

下面介绍公式中各个参数的含义,及参数如何配置问题【都从老外那翻译来的】:

波长(λ):它的值以像素为单位指定,通常大于等于2.但不能大于输入图像尺寸的五分之一。

方向(θ):这个参数指定了Gabor函数并行条纹的方向,它的取值为0到360度

相位偏移(φ):它的取值范围为-180度到180度。其中,0度和180度分别对应中心对称的center-on函数和center-off函数,而-90度和90度对应反对称函数。

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

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

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

下面给出,不同参数配置下的Gabor核函数效果图,大小均100*100:

a.波长对比组【方向为:0,相位偏移量为:0,纵横比率为:0.5,带宽为:1,下图波长分别为5,10,15】

b.方向对比组【波长为:10,相位偏移量为:0,空间纵横比为:0.5,带宽为:1,方向分别为:0,45,90】

c.相位偏移量对比组【波长为:10,方向为:0,空间纵横比:0.5,带宽:1,相位偏移量分别为:0,180,-90,90】

d.空间纵横比对比组【波长:10,相位偏移量:0,方向:0,带宽:1,空间纵横比分别为:0.5,1】

e.带宽对比组【波长:10,方向:0,相位偏移量:0,空间纵横比:0.5,带宽分别为:0.5,1,2】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的MAN命令

学习Linux的同学&#xff0c;都会使用man来查阅一些命令的帮助信息&#xff0c;常见的使用方法就是“man 命令名称”这样简单的格式。本文就对man命令简要介绍一下。 l man命令的章节 man就是manual的缩写&#xff0c;用来查看系统中自带的各种参考手册&#xff0c;但是手册页分…

java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)

oracle中procedure是不能有返回值的&#xff0c;要想返回值&#xff0c;就得有输出参数&#xff0c;同样要想返回记录集&#xff0c;可以把游标类型作为输出参数。 下面是详细情况说明&#xff1a; 一&#xff1a;无返回值的存储过程调用 存储过程&#xff1a; create or repl…

jeecms附件标签用法

[#if content.attachments?size gt 0] [#list content.attachments as attach] <a id"attach${attach_index}">附件下载</a> [/#list] [/#if] 转载于:https://www.cnblogs.com/Jeely/p/11195310.html

递归的理解

其实就解决两个问题 1、当前应该怎么做&#xff1b; 2、下一步应该怎么做&#xff1b; 见下面的一个短小的例子&#xff1a;倒着输出刚才输入的整数。 #include<stdio.h>void fun(int);int main(void) {int a 0;printf("value of a \n");scanf("%d&quo…

点云配准

https://www.cnblogs.com/endlesscoding/p/10033527.html https://www.cnblogs.com/yhlx125/p/4955337.html https://blog.csdn.net/qq_41581769/article/details/89460153

支持多并发的单例有哪几种写法

一.什么是单例以及单例的使用场景就不多说了&#xff0c;不清楚的可以看我上篇文章或者自行查找 二.单例和多并发之间的规则 单例就是只能创建一个实例对象&#xff0c;而多并发情况下如果不处理一下单例的写法很难保证只创建一个实例对象&#xff0c;所以后面会出问题 处理的思…

兼容各种浏览器的自动左右滚动兼左右点击滚动代码

直接切入正题 红色表示要统一&#xff08;所有的id&#xff09; 演示地址&#xff1a;http://www.er-china.com/index.php?mcontent&cindex&alists&catid772 本框架为phpcms&#xff0c;大家可根据自己的框架更改循环。 <div class"rollBox"> <…

同步数据库仅在Worker内,目前只有Chrome6支持

Database.html <!DOCTYPE HTML><html> <head> <meta charset"UTF-8"> <title></title> </head> <body> <script> if(window.Worker){ var workernew Worker(worker.js); //向worker发送消息 wo…

全局曝光和卷帘曝光的区别

全局曝光和卷帘曝光是常见的相机曝光方式。一般来说&#xff0c;CCD相机是全局曝光&#xff0c;而CMOS相机则存在卷帘曝光。那么&#xff0c;这两种方式孰优孰劣呢&#xff1f;或者说&#xff0c;他们两者的差别在哪里呢&#xff1f;那么&#xff0c;先从两者的定义说起。 全局…

*p++、*(p++)、*++p、*(++p)的区别

1、*p 与 *(p)的区别 因为“”的优先级大于“*”&#xff0c;所以*p 相当于*(p)。 但是p表示先运算再&#xff0c;所以*p或者*(p)&#xff0c;其实等价于“先(*p)&#xff0c;然后再p”。 注意&#xff0c;“先(*p)&#xff0c;然后再p”不能表示成“ (*p)”&#xff0c;因为(*…

MySQL常用总结

创建数据库&#xff0c;指定编码utf8 create database wish charset utf8; 删除库 drop database wish; 使用库 use wish; 查看有什么表 show tables; 删除表 drop table wish; 清空表所有数据(主键从1开始) truncate stu; 显示表结构 desc wish; show create table wish; 设置…

Titanium 列表显示TableView

效果&#xff1a; Titanium中列表显示需要创建TableView var tableView Ti.UI.createTableView({style: Ti.UI.iPhone.TableViewCellSelectionStyle.NONE //TableView样式}); TableView的每一个行叫做TableViewRow 设置TableViewRow的hasChild为true便可显示这样的效果&#x…

Matlab的fspecial函数

函数原型 h fspecial(type) h fspecial(type&#xff0c;para) 根据函数原型对fspecial函数作个说明&#xff0c;fspecial是用来生成滤波器&#xff08;也叫算子&#xff09;的函数&#xff0c;使用type参数来指定滤波器的种类&#xff0c;使用para来对具体的滤波器种类添…

discuz x2.5插件开发傻瓜图文教程,用demo说话

2019独角兽企业重金招聘Python工程师标准>>> 刚刚接触DZ的插件开发&#xff0c;记个傻瓜图文教程&#xff0c;一是分享给初学者&#xff0c;二是方便自己以后回忆。 本篇文章适合人群&#xff1a;有一定的PHP开发经验&#xff0c;想通过一个简单明了的demo快速了解…

uboot源码——gd_t 类型、bd_t 类型

bd_t、gd_t是u-boot中两个重要的数据结构&#xff0c;初始化操作中很多全局变量都要靠这两个数据结构来保存或传递。 两者分别定义在include/asm-arm/u-boot.h、include/asm-arm/global_data.h中。 一、bd_t 类型 struct bd_info 这个结构体类型&#xff0c;主要是用来保存板子…

代码抽象的三原则

软件开发是"抽象化"原则&#xff08;Abstraction&#xff09;的一种体现。 所谓"抽象化"&#xff0c;就是指从具体问题中&#xff0c;提取出具有共性的模式&#xff0c;再使用通用的解决方法加以处理。 开发软件的时候&#xff0c;一方面&#xff0c;我们总…

对图像高频信号和低频信号的理解

今天开始讲图像了&#xff0c;讲了很多在频域处理的方法&#xff0c;回来复习一下图像的频域。 一 、关于图像高频和低频 1.1 对图像高频信号和低频信号的理解 图像中的低频信号和高频信号也叫做低频分量和高频分量。 简单一点说&#xff0c;图像中的高频分量&#xff0c;…

关于开源中国手机App的说明

随着移动互联网大潮的快速发展&#xff0c;开源中国社区作为国内大型IT技术人员社区也推出了手机移动客户端&#xff0c;覆盖iOS&#xff0c;Android以及Windows Phone这三个手机平台。主要为了能让我们的用户能随时随地的与开源中国社区的用户进行交流与互动。我们需要App实现…

uva 11174(排列组合+搜索)

依然是liurujia计数练习题。依然是自己想没想出来&#xff0c;在MOD是素数的情况下除以x即为乘x的逆。这个真心以前没听过&#xff0c;用了这个方法后处理就变得十分巧妙。 整个程序步骤还是很清晰的&#xff0c;先上来算阶乘与逆&#xff08;求数的逆还是有点没理解透&#xf…

将Source Insight的代码拷贝到word文档的方法

1、用Source Insight打开文件后&#xff0c;File->Print&#xff1b; 2、在 常规->选择打印机中&#xff0c;选择“Adobe PDF”&#xff08;或者其他pdf打印机&#xff09;&#xff1b; 3、点确定&#xff0c;输出一个pdf文件了&#xff0c;然后去pdf文件里面复制代码&…