can I convert 2d features into 3d points?

asked 2015-03-19 11:57:14 -0500

antithing gravatar image

updated 2015-03-19 15:49:11 -0500

Hi all, I am new to opencv, and am attempting to use feature matching to construct 3d points from a live video stream, and eventually, find the camera pose.

So I am successfully finding the corners, using Eigenvalue Corner Detection. I have calibrated my camera. and have the distortion/Extrinsic_Parameter data.

Now though, I am stuck. How can I transfer the tracked corners into 3d point values?

Do i need to go --> corners > image points > object points? Or am i going about this the wrong way entirely?

thanks for your help!

edit retag flag offensive close merge delete


Just as extra information, are you using a stereo setup or do you want to construct 3D from motion in a single camera setup? The latter is not supported in OpenCV for the moment ...

StevenPuttemans gravatar imageStevenPuttemans ( 2015-03-20 05:00:32 -0500 )edit

Hi! To be more specific, I aim to track a grid of points that I know the size of. Eg: 12 points, each 1 metre apart in a grid formation. So I will know the scale. Does this make it easier/more possible?


antithing gravatar imageantithing ( 2015-03-20 05:07:00 -0500 )edit

Again, single camera or stereo setup?

StevenPuttemans gravatar imageStevenPuttemans ( 2015-03-20 05:29:17 -0500 )edit

Sorry, Single camera.

antithing gravatar imageantithing ( 2015-03-20 07:53:35 -0500 )edit

After reading more, it seems that since I have the marker coordinates, and their tracked position in frame, I can use solvepnp to get the world position, and invert that for camera pose. Does this sound right? Are you aware of any example code around for a similar thing? Thanks!

antithing gravatar imageantithing ( 2015-03-20 12:10:00 -0500 )edit