Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

3D reconstruction (SfM) - confusion with camera's extrinsic parameter

From two images (with known camera intrinsic parameter), I follow the usual pipeline to reconstruct its 3D points. In particular, I use the cv2.findEssentialMat and cv2.recoverPose function. From the cv2.recoverPose, I got the rotation and translation of the second camera (the first camera will has identity matrix for its rotation and zero vector for its translation). What confuse me is the value of the camera 2's translation that is [ -0.98681175 0.08603786 0.1371133 ], where I got a negative x value. Clearly from my images, the second camera should move right, indicating a positive x value. Why is this? Is it because the matrix should show the movement of the points and not the camera itself (I always thought the extrinsic parameter shows the movement of the camera)?

Below are the two images (with highlighted keypoints used for 3D reconstruction) and the reconstructed scene.

image description

Reconstructed scene

The two blue X marks above are camera 1 and camera 2 position (here, I have multiplied camera 2's translation with -1 to get a positive x value).