Équivalent de déclaration OpenCV en Java en utilisant JavaCV
Question
Je veux savoir comment construire la déclaration ++ C suivante dans OpenCV en utilisant JavaCV:
float* p = (float*)cvGetSeqElem(circles, i);
int radius = cvRound(p[2]);
Pour obtenir le rayon d'un cercle détecté en utilisant cvHoughCircles (). Il est évident que Java ne pas utiliser le pointeur, donc je ne sais pas comment faire cela en Java. Le code que j'ai à ce jour pour que vous puissiez le voir contexte:
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);
}
La solution
Cartes JavaCPP C / C ++ / tableaux pointeurs vers des objets pointeur, donc nous peut l'accès de la même manière que dans C / C ++, i.e.:.
FloatPointer p = new FloatPointer(cvGetSeqElem(circles, i));
int radius = Math.round(p.get(2));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow