# Convert 3D point to 2D image point

Hi, using OpenCV what is the fastest/easiest way to convert 3D points to 2D image points. I know that the points are expressed in x, y and z coords in milimeters, I have the camera parameters, the height of the camera (relative to the ground plane) is expressed also in milimeters. I need an easy way to convert these 3d points (x,y,z expressed in mm) to 2d points (expressed in pixels) using the data I have and obtain the Xi, Yi coords where the origin of the coordinate system in the top left corner of the image.

Best regards!

edit retag close merge delete

Sort by ยป oldest newest most voted

You can use cv::projectpoints for this task:

http://docs.opencv.org/modules/calib3...

The simplest way to use it is by passing the points in the coordinate frame of the camera and setting rvec and tvec to (0,0,0). Then just pass the intrinsic calibration and distortion and you get the projected points.

more

Seems to be exactly what I need, I don't know how I missed it while searching! Thanks for the help!

( 2015-01-12 03:20:42 -0500 )edit

Is there a ways to project those 3d points to an image plane if there is NO camera matrix available?

( 2018-05-11 08:13:49 -0500 )edit

To my knowledge, NO. Because projecting 3D points from world coordinate frame to image frame requires the availability of the CAMERA PARAMETERS. Else, what is the point of camera calibration?

( 2019-01-29 05:56:15 -0500 )edit

why do we set rvec = tvec = (0,0,0) ?

( 2019-07-30 08:37:10 -0500 )edit

Official site

GitHub

Wiki

Documentation