Pregunta

Quiero saber cómo construir la siguiente instrucción C ++ en OpenCV usando Javacv:

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

Para detectar el radio de un círculo usando cvhoughcircles (). Obviamente, Java no usa Pointer, así que no tengo idea de cómo hacer esto 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);
}
¿Fue útil?

Solución

Javacpp mapas C/C ++ matrices/punteros a objetos de puntero, así que nosotros pueden Acceda a él de la misma manera que en C/C ++, es decir:

FloatPointer p = new FloatPointer(cvGetSeqElem(circles, i));
int radius = Math.round(p.get(2));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top