ORB-SLAM读代码

自己用,后面看多少接着再补

ORB-SLAM2读代码  先只看 Tracking
单看 mono_tum.cc   中间各种文件打开及opencv调用的部分不说

mono_tum.cc 中  
ORB_SLAM2::System  
进System.cc构造
        先初始化追踪线程,调用
            new Tracking(this,                        //现在还不是很明白为什么这里还需要一个this指针  TODO  
                                        mpVocabulary,                //字典
                                        mpFrameDrawer,             //帧绘制器
                                        mpMapDrawer,                //地图绘制器
                                        mpMap,                     //地图
                                        mpKeyFrameDatabase,         //关键帧地图
                                        strSettingsFile,             //设置文件路径
                                        mSensor);                    //传感器类型iomanip           
        进Tracking.cc 构造
                先读取内参矩阵和畸变系数,再读取每帧提取的特征点个数、金字塔变化尺度、金字塔层数、fast点的提取阈值,再构造ORB特征提取器
                        new ORBextractor(
                                nFeatures,      //参数的含义还是看上面的注释吧
                                fScaleFactor,
                                nLevels,
                                fIniThFAST,
                                fMinThFAST);           
                          进ORBextractor.cc构造
                                    先获取每层金字塔的缩放系数,然后计算每层金字塔特征点分配的个数
     退到  mono_tum.cc          调用 SLAM.TrackMonocular(im,tframe);
            进Sytem.cc 内 TrackMonocular      
            进     cv::Mat Tcw = mpTracker->GrabImageMonocular(im,timestamp);        
                    进Tracking.cc        GrabImageMonocular 里的
                    Frame(
                            mImGray,
                            timestamp,
                            mpIniORBextractor,      //初始化ORB特征点提取器会提取2倍的指定特征点数目
                            mpORBVocabulary,
                            mK,
                            mDistCoef,
                            mbf,
                            mThDepth);
                     进  Frame.cc的构造     
                            进  ExtractORB(0,imGray);  内部调用仿函数  
                                   (*mpORBextractorLeft)(im,                //待提取特征点的图像
                              cv::Mat(),        //掩摸图像, 实际没有用到
                              mvKeys,            //输出变量,用于保存提取后的特征点
                              mDescriptors);    //输出变量,用于保存特征点的描述子
                             进 ORBextractor.cc 的 重载operator()
                                   调用 构建金字塔 ComputePyramid 、四叉数分配特征点 ComputeKeyPointsOctTree、图像高斯模糊去杂点GaussianBlur、  计算描述子computeDescriptors 等操作


    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值