Konvexe Hülle auf Java Android Opencv 2.3

Bitte helfen Sie mir,

Ich habe ein problem, für Convex Hull auf Android. Ich benutze Java und OpenCV 2.3.

Bevor ich es auf Java, habe ich es auf C++ mit Visual Studio 2008.

Dieser code erfolgreich ausgeführt auf C++.

Nun, ich will es konvertieren von C++ zu Java auf Android. Und ich fand Fehlermeldung wie "force close" wenn ich es laufen auf der Android SDK-simulator.

Dies ist mein code auf 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
}

Und das ist mein code auf 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);
    }

Für deine info, ich habe eine kleine änderung auf der Konvexen Hülle an meinem code. Fülle ich eine Farbe im inneren Kontur.

Jemand kann mir helfen, mein problem zu lösen?

Ich bin für Eure Hilfe sehr dankbar.

  • Es ist schwer zu sagen, was die Ursache für dein problem. Was ist die spezifische Fehlermeldung, die Sie bekommen? Gibt es log-Ausgabe im Zusammenhang mit ihm?
  • Wenn ich es laufen auf der Android SDK-Simulator, windows-Fehler erschien, "die Anwendung gestopt unerwartet" und mir wurde gesagt, zu stoppen, indem Sie auf "Force Close". Und wenn ich überprüft, Log-Cat Fehler Eclipse, ich fand, dass der Prozess halt auf dieser Linie "Imgproc.convexHull(Konturen.get(i), hull.get(i), false);" ich weiß nicht, warum der Vorgang gestopt, in der Zeile. Können Sie nicht helfen, mir erklären?
  • Ich denke ich habe einen Fehler bei der Deklaration der "Rumpf" - variable. Aber, ich weiß nicht, wie man dieses problem lösen. Ich denke, ich habe erklärt, dass die variable in übereinstimmung mit den geltenden Bestimmungen. Was ist Ihre Meinung? Glauben Sie, dass die Deklaration einer variable "Rumpf" in meinem code nicht richtig?
  • Hat einer von den Antworten, die Ihr problem lösen? Wenn ja, würden Sie akzeptieren einer von Ihnen? Wenn nicht, hinterlassen Sie bitte einen Kommentar unter Angabe, was wir verbessern können.
InformationsquelleAutor Jenang | 2013-07-11
Schreibe einen Kommentar