Matlab bundleAdjustment函数使用方法
函数说明
Matlab 在2016b版本后新加了bundleAdjustment函数,用于SLAM优化。不过该函数官网教程比较少,说的也较粗略。虽然最终自己还是没有用该函数得到最终的结果,但是还是把自己的使用过程记录下来,给大家提供点思路。
使用方法
[xyzRefinedPoints,refinedPoses] = bundleAdjustment(xyzPoints,pointTracks,cameraPoses,intrinsics)
- xyzPoints :指的是三维点在世界坐标系中的坐标,采用N*3的矩阵结构存储;
- pointTracks :指的图像点的坐标,注意此处要以(col, row)的方式表达,采用N*2的矩阵结构存储;
- cameraPoses :指的世界坐标系在相机坐标系中的表示,此处包含的内容较多,需要采用table的数据结构存储,ViewId, Orientation, and Location一定要写对,不然会报错;
- intrinsics :相机的内参;
最终我也没有得到想要的结果,按照这个使用方法优化后的位姿与初值基本重合,不论给定初值多差都基本不变。不知道哪里出现了问题,欢迎使用正确的大神留言指正。