2015-10-08 22 views
0

我是ceres(非线性最小二乘)求解器和C++模板编程的新手。我已经成功安装了ceres求解器,并通过下载发布在http://grail.cs.washington.edu/projects/bal/上的数据集在ubuntu上执行了bundle_adjuster.cc代码。我必须使用Bundle Adjustment作为项目中的黑盒子。我想打印精致的相机姿态,数据集的三维坐标。如何做到这一点,我应该在bundle_adjuster.cc中编辑以获取新的姿态矩阵和三维坐标。谷神星解算器的捆绑调整

谢谢。

回答

1

精制相机的姿势和3D对象点在bal_problem结构:

double* points = bal_problem->mutable_points(); 
double* cameras = bal_problem->mutable_cameras(); 

它们与双打只是阵列,每一个3D点需要3(X,Y,Z)和每一个照相机需要6( Rodrigues角度轴旋转加翻译)双打。

所以对于点阵列:X0 Y0 Z0 X1 Y1 Z1,...和相机:R00 R10 R20 X0 Y0 Z0 R01 R21 R31 X1 Y1 Z1,...