OpenCV轮廓、边缘、边界的相关函数

OpenCV支持大量的轮廓、边缘、边界的相关函数,相应的函数如下:

1. 轮廓的特征矩moments

矩主要包括以下几种:空间矩,中心矩和中心归一化矩。

class Moments { public: ......

 // 空间矩

double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;

// 中心矩

double mu20, mu11, mu02, mu30, mu21, mu12, mu03;

// 中心归一化矩 

double nu20, nu11, nu02, nu30, nu21, nu12, nu03;

 }

空间矩的公式为:

 
  

可以知道,对于01二值化的图像,m00即为轮廓的面积。


中心矩的公式为:

 
  

其中:

 
  

归一化的中心矩公式为:

 
  
在OpenCV中,还可以得到Hu不变距,Hu不变矩在图像旋转、缩放、平移等操作后,仍能保持矩的不变性,所以有时候用Hu不变距更能识别图像的特征。Hu不变矩的基本概念请参考paper:Hu. Visual Pattern Recognition by Moment Invariants, IRE Transactions on Information Theory, 8:2, pp. 179-187, 1962, 或者参考中文介绍:http://www.cnblogs.com/skyseraph/archive/2011/07/19/2110183.html

2.HuMoments、findContours、 drawContours、approxPolyDP、arcLength、boundingRect、contourArea、convexHull、 fitEllipse、fitLine、isContourConvex、minAreaRect、minEnclosingCircle、 mathcShapes、pointPolygonTest。

还有一些c版本的针对老版本的数据结构的函数比如cvApproxChains、 cvConvexityDefects。

opencv里支持很多边缘提取的办法,可是如何在一幅图像里得到轮廓区域的参数呢,这就需要用到findContours函数

你可能感兴趣的:(机器视觉)