Search code examples
opencvcomputer-visionrotational-matrices

Rotation matrix between two camera system


I was trying to find the rotation matrix between two camera systems for epipolar geometry when I have the rotation matrices for each camera plane from a common coordinate system. I came upon this question where the accepted answer says to take the inverse of one and multiply with the other, I am wondering why that is?


Solution

  • With 2 generic rotational matrices referenced to the world coordinates you have:

    R01 is the rotation from reference system 1 (first camera) to system 0 (world)

    R02 is from system 2 (second camera) to system 0

    It is also true that the inverse inv(R02) is equal to R20 (from world to second camera system)

    So (read every operation right to left)

    inv(R02)*R01 = 
    = R20*R01 =
    = R21
    

    You transform coordinates in system 1 to system 2 trough system 0 (I'm not considering relative translation now)