Equivalente all'istruzione OpenCV in Java usando Javacv
Domanda
Voglio sapere come costruire la seguente istruzione C ++ in OpenCV usando JavaCV:
float* p = (float*)cvGetSeqElem(circles, i);
int radius = cvRound(p[2]);
Per ottenere il raggio di un cerchio rilevato usando cvhoughCircles (). Ovviamente Java non usa il puntatore, quindi non ho idea di come farlo in Java. Il codice che ho finora in modo che tu possa vederlo contesto:
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);
}
Soluzione
Javacpp maps c/c ++ array/puntatori agli oggetti puntatore, quindi noi Potere Accedilo allo stesso modo di C/C ++, cioè:
FloatPointer p = new FloatPointer(cvGetSeqElem(circles, i));
int radius = Math.round(p.get(2));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow