2

根据这个项目(雕刻恐龙),我想创建一个数据集,其中包含从对象拍摄的 36 张图像并估计适当的相机投影矩阵。

因此,我为具有三个棋盘图案的第一张图像校准了一次相机(外在/内在),现在我想根据我拍摄的 36 张图像添加圆周运动(大约 10 度)以获得如下所示的效果:

相机姿势

我的相机是静态的,而拍摄的物体对于每张图像都旋转了 10 度。

我如何实现这一目标?手动创建旋转矩阵并将其添加到我的相机投影矩阵中是否正确?

谢谢你的建议

4

1 回答 1

2

修改旋转矩阵是不够的,你需要改变相机的位置。在运动问题的结构中,假设场景是静态的,而相机是移动的。您可以考虑这种情况,因为只有关系移动很重要。

设外部相机矩阵为 A = R[I | -C],其中 C 是全局坐标系中相机中心的位置,R 是从全局坐标系到相机坐标系的旋转。设 Ra 表示在全局框架中绕垂直轴旋转角度 alpha。它可以写成 (cos(alpha),-sin(alpha),0;sin(alpha),cos(alpha),0;0,0,1)。然后所需的相机矩阵可以计算为 A2 = R2[I | -C2],其中 R2 = R * transpose(Ra) 和 C2 = Ra * C。

但是,在使用这种方法时,您应该确保两件事。首先,全局框架的垂直轴必须对应于现实世界的垂直方向。其次,全局框架的原点必须位于相机中心旋转的轴上。后者可以通过将对象置于全局框架的原点来实现。

如果角度测量不准确或全局框架没有很好地居中,那么计算的外在矩阵也可能不准确。在这种情况下,它可以用作运动算法对结构的初始估计。另一种选择是为每一帧校准相机,而不仅仅是第一帧。

于 2013-02-26T09:32:35.600 回答