Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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++) {
        mu.add(i, Imgproc.moments(contours.get(i), false));
    }

//mass center
    List<MatOfPoint2f> mc = new ArrayList<MatOfPoint2f>(contours.size()); 
    for( int i = 0; i < contours.size(); i++ ){
        mc.add((mu.get(i).get_m10() / mu.get(i).get_m00() , mu.get(i).get_m01()/mu.get(i).get_m00()));
    }

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()));

Thanks in advance.

click to hide/show revision 2
No.2 Revision

updated 2013-08-21 01:29:52 -0600

berak gravatar image

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++) {
        mu.add(i, Imgproc.moments(contours.get(i), false));
    }

//mass center
    List<MatOfPoint2f> mc = new ArrayList<MatOfPoint2f>(contours.size()); 
    for( int i = 0; i < contours.size(); i++ ){
        mc.add((mu.get(i).get_m10() / mu.get(i).get_m00() , mu.get(i).get_m01()/mu.get(i).get_m00()));
    }

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()));

Thanks in advance.