我正在使用以下代码使用 opencv 计算对象的矩和位置:
// calc object moments
CvMoments *moments = (CvMoments*) malloc(sizeof(CvMoments));
cvMoments(threshy, moments, 1);
// get the moment values
double moment10 = cvGetSpatialMoment(moments, 1, 0);
double moment01 = cvGetSpatialMoment(moments, 0, 1);
double area = cvGetCentralMoment(moments, 0, 0);
// save the X and Y position from previous iteration.
int lastX = currentX;
int lastY = currentY;
// calculate the new X and Y positions.
currentX = moment10/area;
currentY = moment01/area;
这很好用,只要场景中只有一个对象。然而,如果有多个对象,currentX
并且currentY
将导致所有对象的中点。
有没有办法计算每个物体的力矩(和坐标)?