计算二值图像的重心

来源:互联网 发布:汪涵人设崩 知乎 编辑:程序博客网 时间:2024/05/01 02:19
/** 计算二值图像的重心
* @param[in] src  输入的待处理图像
* @param[out] center 重心坐标
* @retval 0  操作成功
* @retval -1 操作失败
* @note 输入图像是二值化图像
* @note xc=M10/M00, yc=M01/M00, 其中 Mx_order,y_order=SUMx,y(I(x,y)*x^x_order*y^y_order)
*/
static int aoiGravityCenter(IplImage *src, CvPoint &center)
{
 //if(!src)
 // return GRAVITYCENTER__SRC_IS_NULL;
 double m00, m10, m01;
 CvMoments moment;
 cvMoments( src, &moment, 1);
 m00 = cvGetSpatialMoment( &moment, 0, 0 );
 if( m00 == 0)
  return 1;
 m10 = cvGetSpatialMoment( &moment, 1, 0 );
 m01 = cvGetSpatialMoment( &moment, 0, 1 );
 center.x = (int) (m10/m00);
 center.y = (int) (m01/m00);
 return 0;
}
原创粉丝点击