zoukankan      html  css  js  c++  java
  • class FrameHandlerMono : public FrameHandlerBase

    单目视觉里程计流程图

    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; }
  • 相关阅读:
    pytorch和tensorflow
    创建用户
    linux 软件安装
    python 常见错误集锦
    Anaconda常规用法
    两个电脑之间文件快穿-基于用一个局域网和python的使用
    python-pip使用整理
    时间序列 -prophet
    SQL习题集锦
    取色器RGB转换htlm
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/10502077.html
Copyright © 2011-2022 走看看