图像的几何不变矩


矩特征主要表征了图像区域的几何特征,又称为几何矩,由于其具有旋转、平移、尺度等特性的不变特征,所以又称其为不变矩。在图像处理中,几何不变矩可以作为一个重要的特征来表示物体,可以据此特征来对图像进行分类等操作。

 

一、HU矩

 

1.定义

       几何矩是由Hu(Visual pattern recognition by moment invariants)在1962年提出的,图像f(x,y)的(p+q)阶几何矩定义为:Mpq =∫∫(x^p)*(y^q)f(x,y)dxdy(p,q = 0,1,……∞)。

       矩在统计学中被用来反映随机变量的分布情况,推广到力学中,它被用作刻画空间物体的质量分布。同样的道理,如果我们将图像的灰度值看作是一个二维或三维的密度分布函数,那么矩方法即可用于图像分析领域并用作图像特征的提取。

       最常用的:

          1.零阶矩表示了图像的“质量”:Moo= ∫∫f(x,y )dxdy

          2.一阶矩(M01,M10)用于确定图像质心( Xc,Yc):Xc = M10/M00;Yc = M01/M00;

         3.若将坐标原点移至 Xc和 Yc处,就得到了对于图像位移不变的中心矩,Upq =∫∫[(x-Xc)^p]*[(y-Yc)^q]f(x,y)dxdy。

     Hu在文中提出了7个几何矩的不变量,这些不变量满足于图像平移、伸缩和旋转不变。如果定义Zpq=Upq/(U20 + U02)^(p+q+2),Hu 的7种矩为:

                                                          

2.特点

       由Hu矩组成的特征量对图片进行识别,优点就是速度很快,缺点是识别率比较低。

        Hu不变矩一般用来识别图像中大的物体,对于物体的形状描述得比较好,图像的纹理特征不能太复杂,像识别水果的形状,或者对于车牌中的简单字符的识别效果会相对好一些。这一部分原因是由于Hu不变矩只用到低阶矩(最多也就用到三阶矩),对于图像的细节未能很好的描述出来,导致对图像的描述不够完整。

3.Opencv实现:

    由OPENCV提供计算中心距、归一化中心距和hu矩的函数为:

          void cvMoments(const CvArr*image, CvMoments*moments,int isBinary=0)

         double cvGetCentralMoment(CvMoments*moments,int x_order,int y_order)

         double cvGetNormalizedCentralMoment(CvMoments*moments,int x_order,int y_order);

         void cvGetHuMoments(CvMoments*moments,CvHuMoments*HuMoments);

  其中cvMoments和上面的cvContourMoments是同一个函数。

  同时OPENCV还提供了输入图像直接进行hu矩匹配的函数是

         double cvMatchShapes(const void*object1,const void*object2,int method,double parameter=0);

详细说明:http://blog.csdn.net/wrj19860202/article/details/6327094

 

 

二、.Zernike矩

 

    在模式识别中,一个重要的问题是对目标的方向性变化也能进行识别。Zernike 矩是一组正交矩,具有旋转不变性的特性,即旋转目标并不改变其模值。

1.定义
     Zernike 提出了一组多项式{Vnm(x,y)} 。这组多项式在单位圆{x2+y2≤1}内是 正交的,具有如下形式:

              Vnm(x,y) =Vnm(ρ,θ) = Rnm(ρ)exp(jmθ)

                         ——ρ表示原点到象素(x,y)的向量的距离;θ表示向量ρ跟x轴之间的夹角(逆时针方向)。

     并且满足

             ∫∫x^2+y^2 <= 1 [(Vnm (x,y)的共轭]* Vpq(x,y)dxdy=[pi/(n+1)]*δnpδmq

                      ——if(a==b)δab=1;else δab=0。n 表示正整数或是0,m是正整数或是负整数。它表示满足m的绝对值<=n 而且n-m的绝对值是偶数这两个条件。

    对于一幅数字图象,积分用求和代替,即Anm=∑x∑yf(x,y)*[(Vnm(ρ,θ)的共轭],x^2+y^2 <=1,实际计算一幅给定图象的Zernike 矩时,必须将图象的重心移到坐标圆点,将图象象素点映射到单位圆内。

     由以上可知,使[Vnm (ρ,θ)的共轭]可提取图象的特征,低频特性由n 值小的[(Vnm(ρ,θ)的共轭]来提取,高频特性由n 值大的来提取。

2.特点

        Zernike 不变矩相比 Hu 不变矩识别效果会好一些,因为Zernike 矩可以任意构造高价矩, 而高阶矩包含更多的图象信息,他描述了图像更多的细节内容,但是由于 Zernike 不变矩计算时间比较长,所以出现了很多快速的算法,大家可以 google 一下。

       Zernike 矩仅仅具有相位的移动。它的模值保持不变。所以可以将|A nm|作为目标的旋转不变性特征。因为|Anm| =|An,-m| ,所以只需计算m ≥0 的情况。

      也一般用来描述目标物形状占优势的图像,不适合用来描述纹理丰富的图像

     详细说明:http://blog.csdn.net/wrj19860202/article/details/6334275

总结:

     不变矩的应用过程一般包括:

             1)选择合适的不变矩类型;

             2)选择分类器(如神经网络、最短距离等);

             3)如果是神经网络分类器,则需要计算学习样例的不变矩去训练神经网络;

             4)计算待识别对象的不变矩,输入神经网络就可得到待识别对象的类型,或者计算待识别对象不变矩与类别对象不变矩之间的距离,选择最短距离的类别作为待识别对象的类别。

       可以看出,不变矩作用主要目的是描述事物(图像)的特征。人眼识别图像的特征往往又表现为“求和”的形式,因此不变矩是对图像元素进行了积分操作。

        不变矩能够描述图像整体特征就是因为它具有平移不变形、比例不变性和旋转不变性等性质。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值