1
votes

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?

2
I guess it is because now the first camera would have rotation matrix as identity and the other matrix will simply tell you the rotation with respect to the first camera. Consider it to be like coordinate transformation. - Optimus 1072

2 Answers

5
votes

I am wondering why that is?

Transform A: "Hello, I know how to go from London to Beijing".

Transform B: "Hello, I know how to go from Paris to Beijing".

Transform inv(B) * A: "Guess what guys? I know how to go from London to Beijing, and then from Beijing to Paris, so I really know how to go from London to Paris. Cool!"

3
votes

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)