I create simple test application to perform translation(T) and rotation (R) estimaiion from essential matrix.
- Generate 50 random Points.
- Calculate projection pointSet1.
- Transform Points via matrix (R|T).
- Calculate new projection pointSet2.
- Then calculate fundamental matrix F.
- Extruct essential matrix like E = K2^*F*K1 (K1, K2 - internal camera matrices).
- Use SVD to get UDV^.
And calculate resotedR1 = UWV^, resotedR2 = UW^T^. And see that one of them equal to initial R.
But when i calculate translation vector: restotedT = UZU^, i get normilized T =(
restotedT*max(T.x, T.y, T.z) = T =((((
How to restore correct translation vector?