《视觉SLAM十四讲》源码解读算法解析 设计前端0.4版本

在这里插入图片描述
只是运行起来的动图。


Cmara类可以看做是相机的模型,用来存储相机的内参,并提供完成相机坐标系、像素坐标系和世界坐标系之间的坐标转换的方法。


Frame类是基本的数据单元,用来存储图像帧,每获取一张图片就会有一个Frame实例对象,所以在类中要用标号去区分每一个Frame对象。该类用于存储每帧图像的时间戳、外参、像素矩阵(彩色图像和深度图像)、关键像素点等。
彩色图用RGB分量,是一个cols∗rows∗3的三维矩阵
深度图只有对应像素的深度信息,是一个cols∗rowscols∗rows的二维矩阵


MapPoint类用来存储每帧图像的关键像素点的描述子,以及该像素点的世界坐标等信息。可以存着多个MapPoint对象对应一个Frame对象。


Map类是将所有的MapPoint对象管理起来,形成一个地图用于优化,并提供加入关键帧和插入MapPoint的方法。


Config类提供文件操作的方法,用于读取配置文件,并且在程序的任意地方都可随时提供参数的值,所以要把Config类写成单件模式,即将Config类的公共构造函数声明为私有,防止该类对象在别处建立。
单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法


VisualOdometry类将视觉里程计的状态,Map指针、Frame指针,关键点、描述子、匹配信息、配置文件内容等参数管理起来,并提供关键点提取匹配、优化等方法。

关键点:是指图片的特征点,这些特征点在相似的两张图片中容易被识别出来,使两张图片能够根据这些特征点匹配。在这里用到的关键点是FAST关键点,它是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。
描述子:是对提取出来的特征点的周围像素区进行描述。BRIEF描述子是一种二进制描述子,其描述向量可以表述不同的关键点。


猜你喜欢

转载自blog.csdn.net/qq_21950671/article/details/105952156