1.图像的矩

  参考链接:。

opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩,图像的opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_02几何矩定义如下:
opencv 曲线锯齿平滑 opencv 轮廓 锯齿_归一化_03
   其中opencv 曲线锯齿平滑 opencv 轮廓 锯齿_opencv 曲线锯齿平滑_04opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_05的取值范围为opencv 曲线锯齿平滑 opencv 轮廓 锯齿_归一化_06,图像的opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_02阶中心矩定义如下:
opencv 曲线锯齿平滑 opencv 轮廓 锯齿_归一化_08
   其中opencv 曲线锯齿平滑 opencv 轮廓 锯齿_opencv 曲线锯齿平滑_04opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_05的取值范围为opencv 曲线锯齿平滑 opencv 轮廓 锯齿_归一化_06,opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_12opencv 曲线锯齿平滑 opencv 轮廓 锯齿_opencv 曲线锯齿平滑_13代表图像的质心。对于离散的数字图像,积分变换转换为求和变换后,几何矩和中心矩公式如下:
opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_14
opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_15
   其中opencv 曲线锯齿平滑 opencv 轮廓 锯齿_opencv 曲线锯齿平滑_04opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_05的取值范围为opencv 曲线锯齿平滑 opencv 轮廓 锯齿_归一化_06,opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_19opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_20分别代表图像的宽度和高度。归一化的中心矩定位为:
opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_21,其中opencv 曲线锯齿平滑 opencv 轮廓 锯齿_归一化_22,其中opencv 曲线锯齿平滑 opencv 轮廓 锯齿_opencv 曲线锯齿平滑_04opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_24的维度,其中opencv 曲线锯齿平滑 opencv 轮廓 锯齿_中心矩_05opencv 曲线锯齿平滑 opencv 轮廓 锯齿_opencv 曲线锯齿平滑_26的维度,阶段表示参数的指数关系

  利用二阶和三阶规格中心矩可以导出下面7个不变矩组(Φ1 Φ7),它们在图像平移、旋转和比例变化时保持不变。

opencv 曲线锯齿平滑 opencv 轮廓 锯齿_取值范围_27

2.Opencv相关函数

  Opencv提供了函数moments()用来计算图像中所有的矩(最高到三阶),contourArea()用来计算轮廓面积,arcLength()用来计算轮廓或曲线长度。

Moments moments(InputArray array,bool binaryImage=false);

  该函数用来计算所有三阶多边形或栅格形状的矩,参数array表示输入光栅图像(单通道,8位或32位浮点二维数组)或二维点集。binaryImage设为true时,所有的非零图像像素被认为是1。

  点多边形测试用于判断点集是否在被测多边形的内部,是轮廓点集判断的重要技术之一。Opencv专门提供了专门用于点多边形测试的函数pointPolygonTest(),用来检测点是否在多边形内部:

double pointPolygonTest(InputArray contour,Point2f pt,bool measureDist);

  参数contour是输入轮廓,pt表示对轮廓点进行测试,measureDist是标志位,如果设置为true,则函数会返回该点到轮廓最近点的有符号的欧式距离,即点在曲线内时,距离为正,点在曲线外为负,点在轮廓上的距离返回为零。如果设置成false,函数会返回相应的距离(1,-1,0)。