前言
在之前的单目实例中,我们在初始化一个SLAM的系统后,系统处理了接受的文件数据,初始化并运行了各个线程,之后就要给追踪器传入图像进行整个SLAM的流程了。
1.函数声明
追踪器的函数定义在System源文件下,针对不同的传感器模式,分别实现了三种追踪器的定义。
它们依次是单目、双目、RGBD追踪器。
cv::Mat System::TrackMonocular(const cv::Mat &im, const double ×tamp)
cv::Mat System::TrackStereo(const cv::Mat &imLeft, //左侧图像
const cv::Mat &imRight, //右侧图像
const double ×tamp) //时间戳
cv::Mat System::TrackRGBD(const cv::Mat &im, const cv::Mat &depthmap, const double ×tamp)
2.函数定义
以单目为例:
1.检查传感器
不是指定的传感器内容输出信息提示。
if(mSensor!=MONOCULAR)
{
cerr << "ERROR: you called TrackMonocular but input sensor was not set to Monocular." << endl;
exit(-1);
}
2.改变追踪模式
追踪线程有两个模式,一个是定位建图另一个是纯定位模式,追踪器通过此部分代码来实现模式的改变。