Using rotation and translation between two cameras obtained from stereoCalibrate()

asked 2015-02-17 16:25:54 -0600

olya_gm gravatar image

Hello, I have two questions:

1) When I calibrate a stereo camera with stereoCalibrate(), I get R and T. My question is: with this rotation and translation which of the following is correct

formula or formula

where X1, Y1, Z1 are the 3D coordinates of the point in the 1st camera coordinate system, and X2, Y2, Z2 are the 3D coordinates of the point in the 2nd camera coordinate system respectively. The second option seems to be more reasonable, but I would like to know for sure.

2) If I have a known pose of the object (R1, T1) relative to the 1st camera, and I have the rotation matrix and translation vector between 1st and the 2nd camera (R, T), how can I get the pose of the object relative to the 2nd camera (R2, T2)?

Thank you very much for the answers!

edit retag flag offensive close merge delete

Comments

1

When projecting 3D points into 2D you usually put the coordinate system where's the sensor of the camera, so that R will be identity matrix and T will be 0. In a stereo rig the coordinate system is located in the camera 1 sensor, so for camera 2 you have R and T that tell you how is oriented the second reference system. But you are measuring points with reference to the first coordinate system, so to map 3D points into 2D plane of the second camera you have to use coordinates expressed with reference to this system (and that's the role played by R and T, you can map points expressed into original coordinate system to every camera without the need of measuring the distances into the new reference system - where the camera is placed)

David_86 gravatar imageDavid_86 ( 2015-02-18 01:50:57 -0600 )edit