旋转矩阵并非真正对称(OpenCV)

问题描述:

我在OpenCV中使用recoverPose()函数,但我没有得到对称的旋转矩阵。
它不应该返回一个对称旋转矩阵吗?旋转矩阵并非真正对称(OpenCV)

我的结果看起来像:

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; 

正如你所看到的,旋转矩阵是不是真的对称的,也有一些“错误”的价值观的迹象。

这些是两个图像:

image1 image2

三维旋转矩阵是,一般地,不对称的。 (尽管一些是例如单位矩阵满足旋转矩阵的性质并且是对称的)。实际上,对于任何数量的维度来说,一般的非对称属性都是真实的,除了一般的1D情况。

你可以看到3D旋转矩阵的一般形式为https://en.wikipedia.org/wiki/Rotation_matrix

(请注意,旋转矩阵的行列式始终为1)。

+0

所以我的旋转矩阵可能是正确的,看起来像我的两张照片可能的结果? – Mirnyy

+0

你检查了行列式吗?它对我来说非常接近1。 – Bathsheba

+0

是....它是1. 我只是很惊讶,因为我的同事说,他的旋转矩阵总是对称的。 – Mirnyy