0

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

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

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

如果无法使用 OpenCV,是否有其他库可以解决此任务?

4

1 回答 1

0

解决方案基于 OpenCV 文档Camera Calibration and 3D Reconstruction中的公式

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

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

z=1为了解决这个问题,我们对和取两点z=2。然后我们在 3d 空间中找到 2 个指定 line(x1,y1,z1)和的点(x2,y2,z2)

然后我们可以将R-1应用于(x1,y1,z1)(x2,y2,z2),其结果是由两点(X1, Y1, Z1)和确定的线(X1, Y1, Z1)

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

mm对像素应用归一化后,我们获得了正面平行图像。

(如果我们输入的图像扭曲了,我们应该先去扭曲它)

于 2012-01-16T23:55:10.480 回答