2012-02-18 21 views
6

Quiero saber cómo construir la siguiente declaración C++ en OpenCV usando JavaCV:Equivalente de la declaración OpenCV en Java utilizando JavaCV

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

Para obtener el radio de un círculo detectado usando cvHoughCircles(). Obviamente, Java no usa el puntero, así que no tengo idea de cómo hacerlo en Java. El código que tengo hasta ahora para que pueda verlo contexto:

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); 
} 

Respuesta

6

JavaCPP mapas de C/C++ matrices/punteros a objetos de puntero, por lo que puede acceder a ella de la misma manera que en C/C++, es decir, :

FloatPointer p = new FloatPointer(cvGetSeqElem(circles, i)); 
int radius = Math.round(p.get(2)); 
Cuestiones relacionadas