2012-02-18 6 views
6

Voglio sapere come costruire la seguente dichiarazione C++ in OpenCV utilizzando JavaCV:equivalente della dichiarazione OpenCV in Java utilizzando JavaCV

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

Per ottenere il raggio di un cerchio rilevata mediante cvHoughCircles(). Ovviamente Java non usa il puntatore quindi non ho idea di come farlo in Java. Il codice che ho finora in modo da poter vedere 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); 
} 

risposta

6

JavaCPP mappe array/puntatori C/C++ per oggetti Pointer, così abbiamo possibile accedervi nello stesso modo come in C/C++, vale a dire :

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