Mirnyy
Mirnyy

Reputation: 217

Rotation matrix is not really symmetric (OpenCV)

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:

image1 image2

Upvotes: 0

Views: 2300

Answers (1)

Bathsheba
Bathsheba

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

Related Questions