如果已知外部和内部参数,则从2D图像像素获取3D坐标

我正在做tsai algo的相机校准。 我得到了内在和外在的matrix,但是我怎样才能从这个信息中重build三维坐标呢?

在这里输入图像描述

1)我可以使用高斯消去来findX,Y,Z,W,然后点将是X / W,Y / W,Z / W作为同质系统。

2)我可以使用OpenCV文档方法:

在这里输入图像描述

因为我知道uvRt ,我可以计算X,Y,Z

但是,这两种方法的结果都不一样,不正确。

我在做什么错了?

如果你有外在的参数,那么你有一切。 这意味着你可以从extrinsics(也被称为CameraPose)进行Homography。 Pose是一个3x4matrix,单应matrix是一个3×3的matrix, H定义为

  H = K*[r1, r2, t], //eqn 8.1, Hartley and Zisserman 

其中K是相机固有matrix, r1r2是旋转matrix的前两列, R ; t是平移向量。

然后归一化,除以t3

第3列会发生什么,我们不使用它? 不是,因为它是多余的,因为它是2个第一列姿势的交叉产物。

现在你有单应性,投射点。 你的2d分是x,y。 添加他们az = 1,所以他们现在是3d。 项目如下:

  p = [xy 1]; projection = H * p; //project projnorm = projection / p(z); //normalize 

希望这可以帮助。

Interesting Posts