我将相机安装在三脚架上,其动作仅限于平移和倾斜旋转。它正在观察直接位于相机前方的已知位置的点。如果相机看到点并获得它的2d坐标,是否可以推断出相机的旋转,这样我就可以叠加一些与场景正确对齐的3d模型。
我原本以为可以通过反转你用来绘制2d点的公式来解决,你可以得出一个公式来获得2d点然后给出相机旋转。
我在想2d情节会是这样的 Dot的3d目标世界位置*摄像机位置矩阵*摄像机旋转矩阵*透视矩阵= 2d点
是否可以从2d点推导出相机的旋转,因为相机和点的位置是已知的以及透视矩阵(我假设我应该能够猜测到这一点,并通过调整视觉价值)?
答案 0 :(得分:1)
如果通过“倾斜旋转”意味着相机从地平线向上或向下倾斜,则问题非常简单。如果你正确的3D-> 2D是一个简单的矩阵变换,你可以解决,然后反转矩阵,你就完成了,否则你将不得不找到更多有关球体到平面投影的信息。相机正在使用。
但是如果“倾斜旋转”意味着围绕视野的中心轴旋转(“你可能会说是侧向倾斜”),那么这个问题就会出现退化(不止一种情况可以给出相同的图片),你会无法解决它。
修改:
这个关于“望远镜”的新信息大大改变了这个问题。解决方案并不困难,但您必须更好地定义坐标框架。点和相机的位置是已知的,您有2D图像,并且您想要相机的方向。
答案 1 :(得分:0)
如果您的相机呈现w
像素宽,h
像素高的图像,则可以确定增量距离(以像素为单位dw
和dh
)从哪里到它应该在哪里。由于您假设知道视角,因此可以确定像素的实际长度(以实际尺寸为单位)。从dw
和dh
转换为实际距离的结果将分别为您提供(例如)x
和y
。
你知道z
,从相机到点的距离。
为了得到两个不同的角度,考虑两个不同的三角学问题,例如,直角三角形的两边给定长度(z
和x
)。如果有帮助,请在两个维度上绘制问题的俯视图以获得平移角度。使用侧视图重复倾斜角度。