双目DSO代码---仅做留存

部分内容来自:https://blog.csdn.net/huang826144283/article/details/78880675

 

DSO可执行文件参数传入main_dso_pangolin.cpp,流程如下

参数入口:int main( intargc, char** argv )

通过参数文件,获取图像、内参和光度相机标定模型中的非线性响应函数用到的参数gammaCalib 及涉及光晕的参数:vignette :new ImageFolderReader(source,calib, gammaCalib, vignette) (跑kitti的灰色图像就没有后两项了)

ps: mode=1代表不进行光度标定; preset=0 代表原速度 

 main_dso_pangolin.cpp有一个变量:float playbackSpeed=0;    

// 0 for linearize (play as fast as possible, while sequentializing顺序化 tracking & mapping). otherwise, factor on timestamps.

 

根据读入的内参计算每层图像金字塔对应的内参(共6层):setGlobalCalibration

ps : 我是输入1391*341 输出640 320 pyramid0到3

 

模式检验:共有3种模式,分别对应PHOTOMETRIC MODE WITH CALIBRATION、PHOTOMETRIC MODE WITHOUT CALIBRATION、PHOTOMETRIC MODE WITH PERFECT IMAGES,用户根据自身提供的数据的类型进行模式设定

 

倒叙检验:对图像帧反序存储时的操作?(被我删去了)

还有build system

FullSystem* fullSystem = new FullSystem();

 

Pangolin显示

ps: 这里代码的并行性我有点搞不清楚.感觉明明应该一直困在下面这个循环里了(pangolin显示):

if(!disableAllDisplay)
    {
        viewer = new IOWrap::PangolinDSOViewer(wG[0],hG[0], false);
        fullSystem->outputWrapper.push_back(viewer);
    }

但是getImage包括下面几个步骤都是在std::thread runthread([&]() {内容}) 而且看起来下面那个应该是主循环 应该是pangolin先走了一个循环吧

我要格外关注thread

 

读图reader->getImage

 

 

视频播放速度控制,判断是否跳帧处理

 

帧处理入口:addActiveFrame(img, i);<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值