我想弄清楚为什么 3D 立方体没有投影在图像中的正确位置。
我从原点的相机开始,立方体以 为中心(0,0,1)
:
R
然后我围绕 Y 轴创建 45 度的 3D 旋转:
(0.707106781, 0, 0.707106781,
0, 1, 0,
-0.707106781, 0, 0.707106781)
我将相机设置为使用旋转R^-1
,并进行平移R * (0,0,1)
(这些是相机到世界的转换)。相机应该围绕立方体逆时针旋转 45 度(我可以确认我0.707106781
在 x 和 z 上进行了平移)。
在这一点上,我希望看到具有相同比例的立方体,仍然居中,并且其中一个边缘位于图像的中间。但这就是我得到的:
我用来投影 3d 点的过程X
是(伪代码):
- 带入相机坐标:
Xc = R^-1 * X - R^1 * translation
- 转换为图像坐标:
x = Xc * focal length / Xc.z + principal point
我从各种来源阅读了理论,似乎我正在遵守规则。
这只是人工数据,不知道焦距和主点会不会有影响?我究竟做错了什么?为什么立方体不居中?