Äquivalent zur OpenCV -Anweisung in Java mit Javacv
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);
}
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