CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  图形图像/机器视觉

急!求助!用Gabor卷积能量行纹理分析的问题

楼主tina_lulu_21(希望明媚的阳光)2006-05-28 20:15:31 在 专题开发/技术/项目 / 图形图像/机器视觉 提问

我毕设有一项内容是用Gabor卷积能量行纹理分析。  
   
  现在有两个问题:  
   
  1、在构造Gabor滤波器时,我不知道参数应该怎么设置  
        我的Gabor滤波器的公式是这样的:  
   
        G(x,   y|λ,θ,φ,X,   Y)   =   exp(-((x-X)2+(y-Y)2)/2σ2)   *   sin   (2π/λ(x   cosθ   -   y   sinθ)   +φ)      
   
        我想知道波长λ怎么设置?它在图像处理中的意义是什么?  
        标准偏差σ又如何设定?  
   
  2、在进行卷积时,用滤波器模板和图像卷积,图像块的大小应该是和模板的窗口大小一样,但我不知道图像块应该怎么划分,即下面代码中的step变量怎么设置?  
            for   (DWORD   x=firstR;   x<endR;   x+=step)    
          {  
  for   (DWORD   y=firstC;   y<endC;   y+=step)    
  {  
          tmp   =   ConvolveImage(imagePtr,   gaborPiOn2,   x,   y);  
          S2   +=   tmp   *   tmp;  
          tmp   =   ConvolveImage(imagePtr,   gabor0,   x,   y);  
          S2   +=   tmp   *   tmp;  
  }   /*   for   y   */  
        }   /*   for   x   */  
   
         
   
  请高手们指教!谢谢!  
   
  问题点数:50、回复次数:22Top

1 楼youwill(youwill)回复于 2006-06-02 12:46:42 得分 10

λ应该是Gabor波的波动的间隔大小,应该至少比你的纹理小一倍(我想的,未必对)  
  σ应该只影响你变换的系数,线性的,可以归一话就好吧  
  step   应该受速度要求的影像,用1实验一下Top

2 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-02 22:35:04 得分 0

谢谢楼上的好心人!  
   
  step在老师给我的程序中取值为   λ/2   或是   Gabor滤波器窗口大小的四分之一  
  我想知道是什么意思?  
   
  还有对于Gabor   filter   和   卷积运算   我不是很了解,可不可以给我讲讲?  
   
  谢谢大家了Top

3 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-03 08:06:23 得分 0

啊,上面讲错了  
   
  step在老师给我的程序中取值为     λ   /   2Top

4 楼dylanwolf()回复于 2006-06-06 18:42:39 得分 35

λ是频率的倒数,比如说,你的GAbor中心频率是0.2   cycles/pixel,   你的波长就是5   pixels.  
  一般来说,你需要设计几个不同中心频率和角度(比如:频率0.25,0.125,   0.0625,   角度:0,   45,   90,   135)的Gabor来抽取特征,除非你事先知道你的纹理的频率和角度。  
   
  卷积的时候滤波器应该是一个pixel一个pixel的移的,所以我觉得你的函数里头的step不是卷积的step,   而是抽取能量时设计的窗口大小。比如说,用这个图像窗口的平均能量来分析该窗口内的纹理。  
   
  另外,你的Gabor函数好象只用了sin,   全的Gabor函数应该是complex,     something   like   cos()   +   jsin()Top

5 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-07 08:25:34 得分 0

谢谢楼上的好心人!  
   
  你所说的GAbor中心频率是什么?我不太明白。  
  不过,在我的实验中我选取了λ=2,4,8;角度:0,   45,   90,   135来抽取特征。  
   
  我认为卷积的时候滤波器的确应该是一个pixel一个pixel的移的,但程序中step   =   λ/2   我就不理解了。从程序中看它的step确实是卷积的step。你所说的抽取能量时设计的窗口大小指的什么意思呢?能不能再讲详细点?  
   
  谢谢!  
  我毕业论文就要交稿了,真是着急啊!Top

6 楼ant_VS_elephant(蚂蚁撼大象)回复于 2006-06-07 17:30:17 得分 5

晤,你好哦,我也有同样的疑惑,请大侠们指导。我发现有些书和期刊的对于Gabor滤波器的描述都不是很一致,我想请大家帮忙看看。在1996年IEEE上的“Texture   Features   for   bwowsing   and   Retreval   of   Image   Data”里面,g(x,y)=(1/2*PI*Ox*Oy)*exp{-1/2(x*x/Ox*Ox+y*y/Oy*Oy)+2*PI*j*Wx}  
  而在国内的章毓晋的书里面公式和上面的就不同了:h(x,y)=g(x,y)*exp{2*PI*j(Ux+Vy)}  
  其中,g(x,y)=1/2*PI*O*O*exp(-(x*x+y*y)/2)  
  我很希望能有大侠告诉一下,这两个公式是不是统一的,毕竟上面的是国外IEEE的文章,而且那个人在网上还放了Matlab的源代码,虽然我还没有看懂。http://vision.ece.ucsb.edu/texture/software/,这里面有代码,同志们。然而,下面的书里面的公式,个人认为比较简单,似乎好实现一下,但是目前也还不明白。请大侠能不能路过告诉一声,谢谢!!Top

7 楼ant_VS_elephant(蚂蚁撼大象)回复于 2006-06-07 17:45:48 得分 0

刚刚发了回复,就发现一个网址,介绍的比较详细:http://zhenyulu.cnblogs.com/articles/325718.html  
  http://zhenyulu.cnblogs.com/articles/325968.html  
  讲的还是很清楚的:),高兴坏了Top

8 楼dylanwolf()回复于 2006-06-07 17:46:54 得分 0

GAbor其实是个带通滤波器,每个GAbor函数都有自己的中心频率和给出最大响应的角度。就和小波函数一样,但是小波函数的角度分辨率没有GAbor高。  
   
  你程序中的step不能称之为卷积德step,   它只是抽取特征的一种方法。应该也可以用这种方法来抽取特征,step设为λ的函数也是reasonable,   具体我估计你得看提出这种方法的论文了。  
   
  ant_VS_elephant(蚂蚁撼大象)   ,     这两个函数是一致的,我可以回答你的问题,不过你另开一贴吧,也让我赚点分,赫赫。  
   
  另外,章毓晋的是什么书呢?他是做Gabor研究的吗?Top

9 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-07 18:37:00 得分 0

我没有学过数字信号处理和小波哎,所以毕设做这个比较费劲。  
   
  我需要提取的特征是Gabor卷积能量,文中的公式为:  
  S^2(X,Y|λ,θ)=Σ[G(x,y|λ,θ,0,X,Y)I(x,   y)]^2+Σ[G(x,y|λ,θ,π/2,X,Y)I(x,   y)^2  
  (下面是x,y)  
   
  论文中没有提及step   =   λ/2  
  老师给了我一点代码,代码是这样做的  
  看代码的意思,它算了一个点的卷积值,平方累加后,x,y方向都跳过λ/2后,在计算下一个点。  
  可是这样,图像就不是每个点都算到了。难道这就是它抽取特征的方法?  
   
               
  Top

10 楼ant_VS_elephant(蚂蚁撼大象)回复于 2006-06-07 19:17:17 得分 0

dylanwolf:你不如直接在这里说说嘛,大家都是为了讨论和学习啊,干嘛要另外开一贴,章毓晋的书《图像分割》,有关于纹理分割的。Top

11 楼dylanwolf()回复于 2006-06-08 02:59:08 得分 0

这应该就是抽取特征的方法,由于不是每点都计算卷积,相对简单一些。  
  你把你要实现的目的大致说一下吧。  
   
  ant_VS_elephant(蚂蚁撼大象),   因为是不同的话题,重开一贴更容易阅读,否则都放在这贴,比较乱。Top

12 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-08 07:45:29 得分 0

我毕设该部分做的是:对不同的图像按上面的方法计算他们的Gabor卷积能量,然后通过对比它们的能量值,区分出他们纹理上的差异。Top

13 楼dylanwolf()回复于 2006-06-09 04:32:58 得分 0

ok,   明白了。  
   
  每个Gabor得到一个能量值S2,   12个Gabor就可以得到12个能量值。如果每个纹理用一个12维的向量来表示,两种纹理的不同就可以通过这两个向量的距离来表示。  
   
  你可以试一下不同的step,   看哪个效果更好。  
   
  区分纹理也有很多方法,你做的也是一种。Top

14 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-09 20:44:32 得分 0

在老师给的代码中  
    G(x,   y|λ,θ,φ,X,   Y)   =   exp(-((x-X)2+(y-Y)2)/2σ^2)   *   sin   (2π/λ(x   cosθ   -   y   sinθ)   +φ)      
   
  有两种Gabor滤波器,一种称为Texton模式,一种称为傅立叶模式  
  他们的区别是  
  Texton模式:σ   =   λ/2  
  傅立叶模式:   σ   =   窗口大小/4  
  这两种模式是什么意思呢?  
  极度不解中……  
  Top

15 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-10 09:48:18 得分 0

自己再顶一下  
  希望高手们继续帮忙!Top

16 楼dylanwolf()回复于 2006-06-11 17:06:43 得分 0

Gabor是一个高斯函数和正弦函数的乘积。σ决定了高斯函数的带宽,正弦函数决定中心频率,或者波长λ  
   
  一般来说,σ的大小往往是和中心频率相关的,频率越高,σ越小,因为;频率高的信号变化快。这就是你说的Texton模式了。  
   
  Texton模式应该是最常用的,我很少见傅立叶模式。该模式中σ   =   窗口大小/4,该公式窗口大小应该是你设计的Gabor滤波器的窗口大小,这样可以保证Gabor函数的有效系数都能被包括。否则窗口太小,有效系数不能被包括,会影响效果。Top

17 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-11 20:54:44 得分 0

嗯,在我的程序中,傅立叶模式时,窗口大小就是Gabor滤波器的窗口大小  
   
  经过你的讲解之后,对于Gabor我懂一点了,真是非常感谢你!  
  但从心里讲懂得不透彻,因为我没有学过《数字信号处理》等课。  
   
  今天找了篇论文来看:《基于虹膜识别的身份鉴别》  
  里面在用Gabor滤波器提取纹理特征时,中心频率取的是:2、4、8、16、32、64,这样一来,它的波长就是1/2、1/4、1/8、1/16、1/32、1/64,真是小啊!怎么会这么小呢?Top

18 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-11 20:57:30 得分 0

我还有一个问题:  
   
  在Gabor滤波器中常提到尺度、方位角,其中我知道方位角的概念,但尺度指的是什么?是Gabor滤波器的波长(中心频率的倒数)吗?Top

19 楼dylanwolf()回复于 2006-06-12 16:34:56 得分 0

你做的是本科设计,还是研究生论文。你做的时间这么短,不可能理解很深的,赫赫。  
   
  你对那篇论文的理解不对,频率不可能是2,4,6,8。。。的,我估计是这样的:论文涉及了一个最高频率Fmax,   其他频率是Fmax/2,   Fmax/4,   Fmax/8,   Fmax/16,   Fmax/32,   Fmax/64.  
   
  不知道国内的尺度是什么概念,国外是指scale   and   orientation,   scale   equals   frequency.   不过高斯函数中的σ有时候也叫   scale..Top

20 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-12 19:50:05 得分 0

我做的是本科的毕业设计  
   
  原来:scale   and   orientation,   scale   equals   frequency   。很好,我记住了!谢谢你!  
   
  我毕设参照的那篇论文中,使用了三种scale、四种orientation来构造Gabor滤波器。但是论文中没有给出这个scale取的是哪些值,只是简单的说是scale   1、scale   2、sclae   3。  
   
  我在程序中是设了λ   =   2、4、8来做,但不知道是不是对应了scale   1、scale   2、sclae   3(老师给我的代码中也没有提及λ设置,他只是有一个缺省设置λ   =   2、4、8)  
   
  但是《基于虹膜识别的身份鉴别》中,它是这样说的:  
  “滤波器的中心频率越小,提取的纹理特征的尺度越大。通常,中心频率选择为2   的幂次方。在虹膜识别算法中,我们选择中心频率为2,4,8,16,32   和64。”  
   
  难道国内的概念和国外的不一样?  
  这篇文章的地址是:http://nlpr-web.ia.ac.cn/English/irds/papers/yhwang/Biometrics%20Personal%20Identification%20Based%20on%20Iris%20Pattern.pdf  
   
  Top

21 楼dylanwolf()回复于 2006-06-14 16:38:34 得分 0

他们的文章写得有问题,这不是概念不同的问题。首先,他们没有给出频率的单位,其次,这篇文档里头我也没有看到他们用的Gabor的公式。  
   
  对于二维图像,在FFT后频域能表示的最大频率是0.5   cycles/pixel,   所以我才说,不可能是2,   4   8,   16,   32,   64。Top

22 楼tina_lulu_21(希望明媚的阳光)回复于 2006-06-16 21:52:21 得分 0

答辩过了  
  唉,被老师说Gabor卷积的理论理解的不透彻Top

相关问题

关键词

得分解答快速导航

  • 帖主:tina_lulu_21
  • youwill
  • dylanwolf
  • ant_VS_elephant

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo