使用JavaCV在Java中的等价于OpenCV语句

6
我想知道如何使用JavaCV在OpenCV中构建以下C++语句:
float* p = (float*)cvGetSeqElem(circles, i);
int radius = cvRound(p[2]);

使用cvHoughCircles()检测到圆形后如何获取其半径。显然,Java不使用指针,所以我不知道如何在Java中实现这一点。以下是我目前的代码,以便您可以查看上下文:

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);
}
1个回答

6

JavaCPP可以将C/C++数组/指针映射到Pointer对象,因此我们可以像在C/C++中一样访问它,即:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接