是否有可能通过2d-3d点关系获得图像或摄像机位置的前平行视图?

时间:2012-01-12 16:02:47

标签: opencv computer-vision 3d-reconstruction

是否可以使用OpenCV以2d-3d点关系获得图像或相机位置的前平行视图?

为此,我有内在和外在的参数。我在图像(关系2d-3d)上也有一组控制点(位于一个平面内)的三维坐标。

实际上我需要相机的位置和方向,但如果我可以将图像转换为平行视图,就不难找到它。

如果无法使用OpenCV,其他库是否可以解决此问题?

1 个答案:

答案 0 :(得分:0)

解决方案基于OpenCV文档Camera Calibration and 3D Reconstruction

中的公式

让我们考虑没有失真系数的数字形式(与矩阵形式相反)。

我们有uv 计算x'y'很容易 但xy无法计算,因为我们可以选择任何非零z。 3d中的线对应于2d图像中的一个点。

要解决这个问题,我们会为z=1z=2分两个点。 然后我们在3d空间中找到2个点,指定行(x1,y1,z1)(x2,y2,z2)

然后我们可以将R -1 应用于(x1,y1,z1)(x2,y2,z2),这会导致由两个点(X1, Y1, Z1)和{{1}确定的行}}

由于我们的控制点位于一个平面上(为简单起见,让平面为Z = 0),我们可以找到相应的(X1, Y1, Z1)X点,这是3d中的一个点。

在将Y的标准化应用于像素后,我们获得了前平行图像。

(如果输入图像失真,我们应该首先取消输入)