Reputation: 217
i am using the recoverPose() function in OpenCV but i don't get a symmetrical rotation matrix.
Shouldn't it return a symmetric rotation matrix?
My results are looking like:
R = 0.998585723955729, 0.02348487299776981, 0.04769709270061936;
-0.02232705043463718, 0.9994464428542043, -0.02466395517687959,
-0.04824991948907295, 0.02356413814160357, 0.9985572976364158;
t = -0.9982022017535427,
0.005659929033547541,
0.05966849769949602;
As you can see, the rotation matrix is not really symmetric and there is also something "wrong" with the signs of the values.
These are both images:
Upvotes: 0
Views: 2300
Reputation: 234875
A 3D rotation matrix is, in general, not symmetric. (Although some are, for example the identity matrix satisfies the properties of a rotation matrix and is symmetrical). Actually the general non-symmetry property is true for any number of dimensions, aside from the trivial 1D case.
You can see the general form of the 3D rotation matrix at https://en.wikipedia.org/wiki/Rotation_matrix
(Note that the determinant of a rotation matrix is always 1).
Upvotes: 1