Выпуклая оболочка на Java Android Opencv 2.3

Пожалуйста, помогите мне,

У меня проблема с выпуклой оболочкой на Android. Я использую Java иOpenCV 2.3.

Прежде чем я сделал это на Java, я сделал это на C ++ с Visual Studio 2008.

Этот код может успешно работать на C ++.

Теперь я хочу преобразовать его из C ++ в Java на Android. И я обнаружил ошибку типа «принудительное закрытие», когда я запускаю его на симуляторе Android SDK.

Это мой код на C ++:

vector<vector<Point> > contours;
vector<Vec4i> hierarchy;

findContours( canny_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );
drawing = Mat::zeros( canny_output.size(), CV_64F );

/// Find the convex hull object for each contour
vector<vector<Point> > hull ( contours.size() );
for( int i = 0; i < contours.size(); i++ )
  {  convexHull( Mat(contours[i]), hull[i], false );
}

for(size_t i = 0; i < contours.size(); i++){
    drawContours( drawing, hull, i, Scalar(255, 255, 255), CV_FILLED ); // FILL WHITE COLOR
}

И это мой код на Android:

Mat hierarchy = new Mat(img_canny.rows(),img_canny.cols(),CvType.CV_8UC1,new Scalar(0));
    List<Mat> contours =new ArrayList<Mat>();
    List<Mat> hull = new ArrayList<Mat>(contours.size());
    drawing = Mat.zeros(img_canny.size(), im_gray);

    Imgproc.findContours(img_dilasi, contours, hierarchy,Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE, new Point(0, 0));

    for(int i=0; i<contours.size(); i++){
        Imgproc.convexHull(contours.get(i), hull.get(i), false);

    }
    for(int i=0; i<contours.size(); i++){
        Imgproc.drawContours(drawing, hull, i, new Scalar(255.0, 255.0, 255.0), 5);
    }

Для вашей информации, я сделал небольшую модификацию Convex Hull в своем коде.Я заливаю цвет внутри контура.

Кто-нибудь может помочь мне решить мою проблему?

Я очень благодарен за вашу помощь.

Ответы на вопрос(6)

Ваш ответ на вопрос