Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reconstruction a 3D point from multiple 2D points?

OpenCV contains a lot of support for 3D reconstruction from stereo cameras. In my case, I have six calibrated cameras (intrinsic and extrinsic), and I'd like to take common 2D points (say, of a test sphere) and get the corresponding 3D position. Any thoughts on how to do this?

What I have:
1) Calibration parameters for multiple cameras
2) 2D position of test sphere (in each image plane)

What I want to get:
1) Corresponding 3D point of test sphere

like image 951
user1200565 Avatar asked Oct 08 '22 17:10

user1200565


2 Answers

Your calibration parameters will give you a ray for each 2D point for each camera. If you have already identified which rays correspond to your test sphere, you want to do a least squares fit for your target point. (Although the link is using least squares for linear regression, you can use the same methods to find the 3D point minimizing the sum of the squared errors of all 2D points.)

like image 102
comingstorm Avatar answered Oct 12 '22 12:10

comingstorm


Do you know the position relationships between the cameras?

Then each image gives you horizontal and vertical angle - from the camera matrix and epipolar model. This gives you one straight line into space for each camera - simply solve for the point where all these intersect.

like image 42
Martin Beckett Avatar answered Oct 12 '22 10:10

Martin Beckett