图像的几何不变矩_第1页
图像的几何不变矩_第2页
图像的几何不变矩_第3页
图像的几何不变矩_第4页
图像的几何不变矩_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图像的几何不变矩 矩特征主要表征了图像区域的几何特征,又称为几何矩, 由于其具有旋转、平移、尺度等特性的不变特征,所以又称其为不变矩。在图像处理中,几何不变矩可以作为一个重要的特征来表示物体,可以据此特征来对图像进行分类等操作。如果想详细了解不变矩的概念、公式等请参考下面的论文:不变矩方法研究一种实用的不变矩计算方法 1.     HU矩 几何矩是由Hu(Visual pattern recognition by moment invariants)在1962年提出的,图像f(x,y)的(p+q)阶几何矩定义为   

2、0;     Mpq =(xp)*(yq)f(x,y)dxdy(p,q = 0,1,)        矩在统计学中被用来反映随机变量的分布情况,推广到力学中,它被用作刻画空间物体的质量分布。同样的道理,如果我们将图像的灰度值看作是一个二维或三维的密度分布函数,那么矩方法即可用于图像分析领域并用作图像特征的提取。最常用的,物体的零阶矩表示了图像的“质量”:           &

3、#160;       Moo= f(x,y )dxdy         一阶矩(M01,M10)用于确定图像质心( Xc,Yc):              Xc = M10/M00;Yc = M01/M00;         若将坐标原点移至 Xc和 Yc

4、处,就得到了对于图像位移不变的中心矩。如            Upq =(x-Xc)p*(y-Yc)qf(x,y)dxdy。        Hu在文中提出了7个几何矩的不变量,这些不变量满足于图像平移、伸缩和旋转不变。如果定义         Zpq=Upq/(U20 + U02)(p+q+2),   &#

5、160;  Hu 的7种矩为:      H1=Z20+Z02;H1=(Z20+Z02)2+4Z112;.矩 是描述图像特征的算子,它在模式识别与图像分析领域中有重要的应用迄今为止,常见的矩描述子可以分为以下几种:几何矩、正交矩、复数矩和旋转矩其中几 何矩提出的时间最早且形式简单,对它的研究最为充分。几何矩对简单图像有一定的描述能力,他虽然在区分度上不如其他三种矩,但与其他几种算子比较起来,他 极其的简单,一般只需用一个数字就可表达。所以,一般我们是用来做大粒度的区分,用来过滤显然不相关的文档。比如在图形库中,可能有100万幅图,也许

6、只有200幅图是我们想要的。使用一维的几何矩的话,就可以对几何矩进行排序,建立索引,然后选出与目标图的几何矩最近的2000幅图作比较就好了。而对于其他的矩来说,由于一般是多维的关系,一般不好排序,只能顺序查找,自然速度有巨大的差别.所以。虽然几何矩不太能选出最像的,但可以快速排除不像的,提高搜索效率。几种简单的几何矩:令平面上点坐标为P(x,y),重心为C(x!,y!),二阶行距:rowMoment = (x- x!)*(x- x!)/A二阶列距:colMoment = (y- y!)*(y- y!)/AA为点的个数。由以上两个信息可以算出图形的圆度:circleDisgree = rowMo

7、ment /colMoment .如果图形的circleDisgree 越小于1,则它越趋向于长轴为y方向的椭圆。如果图形的circleDisgree 越大于1,则它越趋向于长轴为x方向的椭圆.如果图形的circleDisgree 越接近于1,则它越趋向于圆。所以我们可以使用圆度这种几何矩,对其进行索引,实现快速过滤。/代码实例double* Getsquare(int *Array1,int Width,int Height/Array1图像灰度矩阵  int x,y;  double pSum,dx,dy;  int xmax,xmin,ymax,ymin,x

8、Sum,ySum,PointSum;  double dd,n1,n2,xAve,yAve;  pSum=Height*Width;  xSum=0;ySum=0;PointSum=0;  xmin=10000;ymin=10000;xmax=-1;ymax=-1;   for (y=0 ;y<Height; y+)      for (x=0; x<Width; x+)          if (Arr

9、ay1xy=255)             continue;            xSum=xSum+x;ySum=ySum+y;+PointSum;      if (x<xmin)             

10、;    xmin=x;             if (x>xmax)               xmax=x;              if (y<ymin)    &#

11、160;      ymin=y;        if (y>ymax)          ymax=y;      if (pSum=0) goto Loop;xAve=xSum/pSum;yAve=ySum/pSum;/上面为计算x,y平均值for (x=1; x<16; x+) SqureNumberx=0;/ 11 20 02

12、21+ 21- 12+ 12- 30+ 30- 03+ 02-for (y=0; y<Height; y+)    for (x=0; x<Width; x+)          if (Array1xy=255)             continue;          

13、  dx=x-xAve;dy=y-yAve;      SqureNumber1=SqureNumber1+dx*dx;      / 计算 u(11) 11      SqureNumber2=SqureNumber2+dx*dx;      / 计算 u(20) 20      SqureNumber3=SqureNumber3+dy

14、*dy;      / 计算 u(02) 02      if (dy>0)              SqureNumber4=SqureNumber4+dx*dx*dy; / 计算 u(21)+ 21+            else   

15、           SqureNumber5=SqureNumber5+dx*dx*dy; / 计算 u(21)- 21-            if( dx>0 )              SqureNumber6=SqureNumber6+dx*dy*dy; / 计算 u(1

16、2)+ 12+            else              SqureNumber7=SqureNumber7+dx*dy*dy; / 计算 u(12- 12-            if (dx>0 )    

17、0;         SqureNumber8=SqureNumber8+dx*dx*dx ;/ 计算 u(30)+ 30+            else              SqureNumber9=SqureNumber9+dx*dx*dx; / 计算 u(30)- 30-  

18、          if (dy>0)              SqureNumber10=SqureNumber10+dy*dy*dy ;/ 计算 u(03)+ 03+            else        &#

19、160;     SqureNumber11=SqureNumber11+dy*dy*dy;/ 计算 u(03)- 03-          /end for x/ end for y;for (x=1; x<12; x+) SqureNumberx=SqureNumberx/pSum;/计算图像的各阶矩for (x=12; x<21; x+) SqureNumberx=0;SqureNumber12=(SqureNumber2-SqureNu

20、mber3)/(SqureNumber2+SqureNumber3)/2; /长宽比特征 dd=sqrt(SqureNumber2-SqureNumber3)*(SqureNumber2-SqureNumber3)+4*SqureNumber1*SqureNumber1);dd=dd+(SqureNumber2-SqureNumber3);SqureNumber16=2*atan(dd/(2*SqureNumber1)/M_PI; /字型倾斜度 dd=sqrt(SqureNumber2-SqureNumber3)*(SqureNumber2-SqureNumber3)+4*

21、SqureNumber1*SqureNumber1);n1=(SqureNumber2+SqureNumber3)+dd)/2;n2=(SqureNumber2+SqureNumber3)-dd)/2;SqureNumber14=(n1-n2)/(n1+n2);                   /拉长度 n1=sqrt(ymax-ymin)*(xmax-xmin);dd=sqrt(SqureNumber

22、2+SqureNumber3)/PointSum);SqureNumber15=dd/n1;                             /伸展度 dd=(SqureNumber8-SqureNumber9)/(SqureNumber8+SqureNumber9);SqureNumber16=(d

23、d+1)/2;                          /水平偏移度 dd=(SqureNumber10-SqureNumber11)/(SqureNumber10+SqureNumber11);SqureNumber17=(dd+1)/2;       &#

24、160;                  /垂直偏移度 dd=(SqureNumber4-SqureNumber5)/(SqureNumber4+SqureNumber5);SqureNumber18=(dd+1)/2;                

25、60;         /水平伸展度度 dd=(SqureNumber6-SqureNumber7)/(SqureNumber6+SqureNumber7);SqureNumber19=(dd+1)/2;                          /垂直伸展度Loop:; 2.Zernik

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论