这段代码来自 ORB-SLAM3 的Frame类。函数UnprojectStereoFishEye用于将鱼眼双目相机中某个特征点对应的三维点,从相机坐标系变换到世界坐标系。它本身只做了一次坐标变换,真正的反投影计算已经在构造Frame时完成并存储在mvStereo3Dpoints中。Eigen::Vector3f Frame::UnprojectStereoFishEye(const int i){ // Frame 类的成员函数。 // 返回类型 Eigen::Vector3f,表示世界坐标系下的三维点。 // 参数 i 是特征点索引,按 const 引用传递,避免拷贝。 // 函数名 UnprojectStereoFishEye,表示“对鱼眼双目观测进行反投影”。 return mRwc * mvStereo3Dpoints[i] + mOw; // 取出第 i 个特征点在相机坐标系下的三维点 mvStereo3Dpoints[i], // 用旋转矩阵 mRwc 将其旋转到世界坐标系, // 再加上相机光心在世界坐标系下的位置 mOw, // 得到该特征点在世界坐标系下的三维坐标。 }
阅读完成 · 觉得有帮助?