2

我有一个安装在三脚架上的相机,它的运动仅限于平移和倾斜旋转。它正在查看位于相机正前方已知位置的点。如果相机查看点并获取它的 2d 坐标,是否可以推断出相机的旋转,以便我可以覆盖一些与场景正确对齐的 3d 模型。

我认为可以通过反转用于绘制 2d 点的公式来解决它,您可以得出一个公式来获取 2d 点并返回相机旋转。

我认为 2d 情节类似于 Dot 的 3d 目标世界位置 * 相机位置矩阵 * 相机旋转矩阵 * 透视矩阵 = 2d 点

鉴于相机和点的位置以及透视矩阵是已知的,是否可以从二维点推导出相机的旋转(我假设我应该能够猜测到这一点并通过调整视野值来接近) ?

4

2 回答 2

1

如果“倾斜旋转”是指相机从地平线向上或向下倾斜,那么问题就很简单了。如果您对 3D->2D 是一个可以计算的简单矩阵变换是正确的,那么反转矩阵就完成了,否则您将不得不了解更多关于相机的球面投影正在使用。

但是如果“倾斜旋转”是指围绕视场的中心轴旋转(你可能会说“向侧面倾斜”),那么问题就存在退化(不止一种情况可以给出相同的图片),你将无法解决它。

编辑:

这个关于“望远镜”的新信息极大地改变了这个问题。解决方案并不难,但您必须更好地定义您的坐标系。点和相机的位置是已知的,您有 2D 图像并且您想要相机的方向。

  1. 计算从相机到该点的射线的真实角度。(我建议您首先对点和相机应用平移,将相机带到原点。这使工作更容易。)
  2. 反转“透视矩阵”以获得相机所见的点的测量角度。如果你不能做到这一点,也就是说如果你不知道相机的光学特性,那么问题就无法解决。
  3. 减去角度(从真实平移测量的平移,从真实倾斜测量的倾斜)以获得相机的方向
于 2010-07-23T01:59:19.733 回答
0

如果您的相机渲染w像素宽乘h像素高的图像,那么您可以确定从点所在位置到应在位置之间的增量距离(以像素为单位,dw和)。dh由于您假设知道视角,因此您可以确定像素的实际长度(在实际尺寸中)。由此产生的从dwdh到现实世界距离的转换将分别给你 (例如)xy

你知道z,从相机到点的距离。

为了得到所讨论的两个角度,考虑两个不同的三角学问题,直角三角形两侧的给定长度(例如z和)。x如果有帮助,请在二维中绘制问题的俯视图以获得平移角度。使用侧视图重复倾斜角度。

于 2010-07-22T15:37:32.700 回答