opencv--图像轮廓

矩特征

比较两个轮廓最简单的方法是比较二者的轮廓矩。轮廓矩代表了一个轮廓、一幅图像、一组点集的全局特征。矩信息包含了对应对象不同类型的几何特征,例如大小、位置、角度、形状等

1.获取轮廓特征

使用cv2.moments()获取的轮廓特征称为轮轮廓,轮轮廓作为描述一个轮廓的重要特征,使用轮轮廓可以方便地比较两个轮廓。

retval=cv2.moments(array[,binaryImage})

  • array:可以是灰度图或者二值图,也可以为点集,当作为点集时,该函数将这些点集当作轮廓的顶点,从而将整个点集作为一条轮廓
  • binaryImage:当此参数为True时,array内所以的非零值被处理为1
  • retval:此返回值为据特征,主要包含空间矩,中心矩,归一化矩

(1)空间矩

  • 零阶矩:m00
  • 一阶矩:m10,m01
  • 二阶矩:m20,m11,m02
  • 三阶矩:m30,m21,m12,m03

(2)中心矩

  • 二阶中心矩:mu20,mu11,mu02
  • 三阶中心矩:mu30,mu21,mu12,mu03

(3)归一化中心矩

  • 二阶 Hu 矩:nu20,nu11,nu02
  • 三阶 Hu 矩:nu30,nu21,nu12,nu13

如果两个轮廓的矩一致,那么这两个轮廓就是一致的,可以通过返回的特征值来比较两个轮廓是否相似。不管两个轮廓出现在图像的哪个位置,都可通过函数cv2.monment()的m00矩来判断面积是否一致(零阶矩表示一个轮廓的面积)

        在位置发生变化,虽然轮廓的面积和周长等特征不变,但是更高阶特征会随着位置的变化而变化。在进行比较不同位置的两个对象的一致性的时候通常引入中心矩,中心矩通过减去均值而获取平移的不变性,从而使其忽略两个对象的位置关系,来比较不同位置上两对象的一致性。

        除了考虑平移的不变性,还需要考虑在经过缩放后的对象的一致性,即让图像在缩放前后具有同样的特征值。此时引进归一化中心矩,通过除以物体总尺寸来获得缩放不变性、归一化矩属性值不仅具有平移不变性,还具有缩放不变性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值