MATLAB: 2D to 3D projection

2d3dprojectionstereo visiontransformation

I have a 3D point cloud of an object (3D model) also i have photographs of that object and the camera parameters (focal length, angle) and location (gps location). from the photograph i have identified 2D coordinates (x,y) of some particular features . How can i project that 2D point in 3D surface to get 3D points of that corresponding feature? Thanks

Best Answer

Your 2D points correspond to a ray in 3-space that passes through the 3D feature and the optical centre of the camera. You say you know the intrinsic parameters of the camera. So if you invert the camera's intrinsic calibration matrix, then you can place the image points on a 3D plane in the same Euclidean space as your point cloud. You then need to devise a way of finding the 3D point that's on (well, near actually) the ray emanating from the camera centre and passing through the image point on the image plane. Depending on the object in question this might be easy or quite difficult.
Hope that's useful in a vague sort of way. If you can be more specific, then we may be able to be of more help!
Related Question