# Revision history [back]

### Fit a cylinder given a set of points and a easy visualization for 3d axis

Hi I have set of points that approximate a cylinder (from a feature detection)

 std::vector<cv::Point3f> objectPoints;


and I would like to know how I can get the representation in space of this cylinder.

What I really like is the projection of the vector of the axes in simulated 3D like this:

I have vertices of a generic three-dimensional space:

        std::vector<cv::Point3f> verts(4);
verts[0] = cvPoint3D32f(0, 0, 0);
verts[1] = cvPoint3D32f(0, 1, 0);
verts[2] = cvPoint3D32f(1, 0, 0);
verts[3] = cvPoint3D32f(0, 0, 1);


and edges connecting the verts

        std::vector<cv::Point2d> edges(3);
edges[0] = cvPoint2D32f(0, 1);
edges[1] = cvPoint2D32f(0, 2);
edges[2] = cvPoint2D32f(0, 3);

cv::projectPoints(verts, rvec, tvec, cameraMatrix, distCoeffs, projectedVertPoints);

for (int i = 0; i<edges.size(); i++) {

cv::Point2d vertA,vertB;
vertA = projectedVertPoints[edges[i].x];
vertB = projectedVertPoints[edges[i].y];
// Here you can play with the colors and give each axis its classic color, red green and blue
cv::line(src, vertA, vertB,cv::Scalar(0,255,255));

}


I took inspiration from the demo project in python plane_ar.py