单目视觉里程计流程图

class FrameHandlerMono : public FrameHandlerBase

FrameHandlerMono::FrameHandlerMono(vk::AbstractCamera* cam) :
FrameHandlerBase(),
cam_(cam),
reprojector_(cam_, map_),
depth_filter_(NULL)
{
initialize();
}

构造函数,进进行初始化

void FrameHandlerMono::initialize()
初始化函数

主要功能

构建点和线段特征的特征提取器

  // create a point feature detector instance
feature_detection::DetectorPtr<PointFeat> pt_feature_detector;
if(Config::hasPoints())
pt_feature_detector = feature_detection::DetectorPtr<PointFeat>(
new feature_detection::FastDetector(
cam_->width(), cam_->height(), Config::gridSize(), Config::nPyrLevels()));
else
// create an abstract (void) detector that detects nothing to deactivate use of points
pt_feature_detector = feature_detection::DetectorPtr<PointFeat>(
new feature_detection::AbstractDetector<PointFeat>(
cam_->width(), cam_->height(), Config::gridSize(), Config::nPyrLevels()));
  // create a segment feature detector instance
feature_detection::DetectorPtr<LineFeat> seg_feature_detector;
if(Config::hasLines())
seg_feature_detector = feature_detection::DetectorPtr<LineFeat>(
new feature_detection::LsdDetector(
cam_->width(), cam_->height(), Config::gridSizeSegs(), Config::nPyrLevelsSegs()));
else
// create an abstract (void) detector that detects nothing to deactivate use of line segs
seg_feature_detector = feature_detection::DetectorPtr<LineFeat>(
new feature_detection::AbstractDetector<LineFeat>(
cam_->width(), cam_->height(), Config::gridSizeSegs(), Config::nPyrLevelsSegs()));

创建点和线段特征的深度滤波器

  // create the callback object for the Depth-Filter
DepthFilter::callback_t depth_filter_cb = boost::bind(
&MapPointCandidates::newCandidatePoint, &map_.point_candidates_, _1, _2); DepthFilter::callback_t_ls depth_filter_cb_ls = boost::bind(
&MapSegmentCandidates::newCandidateSegment, &map_.segment_candidates_, _1, _2, _3); // Setup the Depth-Filter object
depth_filter_ = new DepthFilter(pt_feature_detector, seg_feature_detector, depth_filter_cb, depth_filter_cb_ls );
depth_filter_->startThread();
}

vo_->start();
启动函数,设置

  /// Start processing.
void start() { set_start_ = true; }

最新文章

  1. bzoj1834
  2. 2015 CTSC &amp; APIO滚粗记
  3. aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性
  4. 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)
  5. atexit注册的函数是在main函数之后执行?
  6. WCF入门教程(三)属性标签
  7. UIPickerView基本用法
  8. Why stackedit
  9. Pthon修炼5
  10. java面向对象--继承与多态
  11. 利用nginx解决cookie跨域
  12. Scala变量| 流程控制
  13. 【leet-code】135. 加油站
  14. js splice vs slice
  15. vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法
  16. kafka相关资料
  17. SpringCloud 简单理解
  18. Helm Charts
  19. Java 数组算法列题解析
  20. nginx日志配置指令详解

热门文章

  1. pycharm怎么设置代码自动补齐
  2. Android开发中adb启动失败adb连接异常的解决办法
  3. 浅谈常用的几种web攻击方式
  4. Mocks Aren&#39;t Stubs
  5. Atitit 项目文档规范化与必备文档与推荐文档列表
  6. python文件的基础操作
  7. MXNET:深度学习计算-模型参数
  8. Git常见报错及解决方案
  9. 稍稍解读下JDK8的HashMap
  10. php中json_decode及foreach使用总结