Frage

Ich möchte wissen, wie man die folgende C ++ - Anweisung in OpenCV mit Javacv erstellt:

float* p = (float*)cvGetSeqElem(circles, i);
int radius = cvRound(p[2]);

Um den Radius eines Kreises zu erhalten, der mit CVhoughcircles () nachgewiesen wird. Offensichtlich benutzt Java keinen Zeiger, deshalb habe ich keine Ahnung, wie ich das in Java machen soll. Der Code, den ich bisher habe, damit Sie den Kontext sehen können:

lines = cvHoughCircles(frame2, storage, CV_HOUGH_GRADIENT, 1, 50, 300, 60, 10, 600);
for (int i = 0; i < lines.total(); i++) {
    //Would like the code to go here
    CvPoint2D32f point = new CvPoint2D32f(cvGetSeqElem(lines, i));
    cvCircle(src, cvPoint((int)point.x(), (int)point.y()), 3, CvScalar.WHITE, -1, 8, 0);
    Point p = new Point((int)point.x(), (int)point.y());
    points.add(p);
}
War es hilfreich?

Lösung

Javacpp Maps C/C ++ - Arrays/Zeiger auf Zeigerobjekte, also wir kann Greifen Sie auf die gleiche Weise wie in C/C ++ darauf zu, dh:

FloatPointer p = new FloatPointer(cvGetSeqElem(circles, i));
int radius = Math.round(p.get(2));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top