该函数是Frame::isInFrustum()在多相机模式下的核心检查函数:分别针对左目或右目,判断地图点是否在对应相机视锥内,并填充该目用于后续投影搜索的缓存数据。bool Frame::isInFrustumChecks(MapPoint *pMP, float viewingCosLimit, bool bRight) { // 参数: // pMP:待检查的地图点。 // viewingCosLimit:视角余弦阈值,典型值 0.5,对应夹角约 60°。 // bRight:false 检查左目,true 检查右目。 // 返回: // true 表示该地图点在目标相机视锥内,且已填充对应目缓存; // false 表示不满足任一条件。 // 3D in absolute coordinates Eigen::Vector3f P = pMP-GetWorldPos(); // 地图点在世界坐标系下的坐标 X_w。 Eigen::Matrix3f mR; Eigen::Vector3f mt, twc; // mR, mt:从世界坐标系到目标相机坐标系的旋转和平移。 // twc:目标相机光心在世界坐标系下的位置。 if(bRight){ /
阅读完成 · 觉得有帮助?