YAH*_*OOO 32 c++ opencv homogenous-transformation camera-calibration pose-estimation
我正在从tsai algo做相机校准.我有内在和外在矩阵,但我怎样才能从该信息中重建三维坐标?
1) 我可以使用高斯消元法找到X,Y,Z,W,然后将点作为齐次系统的X/W,Y/W,Z/W.
2)我可以使用
OpenCV文档方法:

因为我知道u,v,R,t,我可以计算X,Y,Z.
然而,这两种方法最终都会产生不正确的结果.
我做错了什么?
Jav*_*ock 28
如果你有外在参数,那么你得到了一切.这意味着您可以使用extrinsics(也称为CameraPose)进行Homography.姿势是3x4矩阵,单应性是3x3矩阵,H定义为
H = K*[r1, r2, t], //eqn 8.1, Hartley and Zisserman
Run Code Online (Sandbox Code Playgroud)
与ķ是相机固有矩阵,R1和R2是旋转矩阵,的前两列ř ; t是翻译向量.
然后将t3的所有内容归一化.
第r3列会发生什么,我们不使用它吗?不,因为它是多余的,因为它是2个第一列姿势的交叉积.
既然你有单应性,那就投射点.你的2d分是x,y.添加它们az = 1,所以它们现在是3d.投影如下:
p = [x y 1];
projection = H * p; //project
projnorm = projection / p(z); //normalize
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.