# How to get the mass center of a contour ? Android opencv.

This is the c++ code.

vector<Moments> mu(contours.size() );
for( int i = 0; i < contours.size(); i++ ){
mu[i] = moments( contours[i], false );
}

//Mass center
vector<Point2f> mc( contours.size() );
for( int i = 0; i < contours.size(); i++ ){
mc[i] = Point2f( mu[i].m10/mu[i].m00 , mu[i].m01/mu[i].m00 );
}


This is my code so far in android. i can't convert the mass center to android.

    //moments
List<Moments> mu = new ArrayList<Moments>(contours.size());
for (int i = 0; i < contours.size(); i++) {
}

//mass center
List<MatOfPoint2f> mc = new ArrayList<MatOfPoint2f>(contours.size());
for( int i = 0; i < contours.size(); i++ ){
}


Error in this line :

mc.add((mu.get(i).get_m10() / mu.get(i).get_m00() , mu.get(i).get_m01()/mu.get(i).get_m00()));


edit retag close merge delete

Is it a logical error or do you have a real error message?

( 2013-08-21 01:09:00 -0600 )edit

Sort by ยป oldest newest most voted

it gets easier to see, if you first construct a point from your moments:

for( int i = 0; i < contours.size(); i++ ) {
Point2f p = new Point2f( mu.get(i).get_m10() / mu.get(i).get_m00() , mu.get(i).get_m01()/mu.get(i).get_m00() )
}

more

Official site

GitHub

Wiki

Documentation