如果已知外部和内部参数,则从2D图像像素获取3D坐标
我正在做tsai algo的相机校准。 我得到了内在和外在的matrix,但是我怎样才能从这个信息中重build三维坐标呢?
1)我可以使用高斯消去来findX,Y,Z,W,然后点将是X / W,Y / W,Z / W作为同质系统。
2)我可以使用OpenCV文档方法:
因为我知道u
, v
, R
, t
,我可以计算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, r1和r2是旋转matrix的前两列, R ; t是平移向量。
然后归一化,除以t3 。
第3列会发生什么,我们不使用它? 不是,因为它是多余的,因为它是2个第一列姿势的交叉产物。
现在你有单应性,投射点。 你的2d分是x,y。 添加他们az = 1,所以他们现在是3d。 项目如下:
p = [xy 1]; projection = H * p; //project projnorm = projection / p(z); //normalize
希望这可以帮助。