我在 OpenCV 中使用 recoverPose() 函数,但我没有得到对称旋转矩阵。
它不应该返回一个对称旋转矩阵吗?
我的结果看起来像:
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;
如您所见,旋转矩阵并不是真正对称的,而且值的符号也有一些“错误”。
这些都是图片:
最佳答案
一般来说,3D 旋转矩阵是不对称的。 (尽管有些是,例如单位矩阵满足旋转矩阵的性质并且是对称的)。实际上,除了微不足道的一维情况外,一般的非对称性对于任何数量的维度都是正确的。
你可以在 https://en.wikipedia.org/wiki/Rotation_matrix 看到 3D 旋转矩阵的一般形式
(请注意,旋转矩阵的行列式始终为 1)。
关于c++ - 旋转矩阵不是真正对称的(OpenCV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42861264/