构造函数
Initializer::Initializer(const Frame &ReferenceFrame, float sigma, int iterations)参数: 参考帧(第一帧), 误差, 迭代次数 操作:读取参考帧的相机模型, 内参, 去畸变的特征点等传入参数
初始化:并行的计算前后两帧的本质矩阵和基础矩阵,选出来评分高的恢复旋转和平移bool Initializer::Initialize(const Frame &CurrentFrame, const vector &vMatches12, cv::Mat &R21, cv::Mat &t21, vectorcv::Point3f &vP3D, vector&vbTriangulated) 参数: 当前帧(第二帧), 前后帧的匹配关系(), 参考帧到当前帧的旋转, 参考帧到当前帧的平移(==当前帧指向参考帧==), 三角化后的点, 特征是否被三角化过返回值:bool->初始化是否成功的标志 操作:
-
vMatches12中的匹配关系以<==第一帧特征索引,第二帧特征索引==>存储在mvMatches12中, 同时mvbMatched1[i]设置为true表示第一帧中该索引的特征点匹配成功
-
从匹配中不重复的随机选择mMaxIterations组点,每组8个
-
开两个线程同时计算单应和基本矩阵
-
计算得分
-
选择得分高的矩阵来恢复两帧位姿