2012-02-18 19 views
6

Tôi muốn biết làm thế nào để xây dựng C++ tuyên bố sau trong OpenCV sử dụng JavaCV:tương đương của OpenCV tuyên bố trong Java sử dụng JavaCV

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

Để có được Radius của một vòng tròn phát hiện sử dụng cvHoughCircles(). Rõ ràng Java không sử dụng con trỏ vì vậy tôi không có ý tưởng làm thế nào để làm điều này trong Java. Mã tôi có cho đến nay, do đó bạn có thể nhìn thấy nó bối cảnh:

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

Trả lời

6

JavaCPP bản đồ C/C++ mảng/con trỏ đến đối tượng con trỏ, vì vậy chúng tôi thể truy cập nó theo cách tương tự như trong C/C++, tức là :

FloatPointer p = new FloatPointer(cvGetSeqElem(circles, i)); 
int radius = Math.round(p.get(2)); 
Các vấn đề liên quan