class mola::lidar_segmentation::LidarFilterBase

Overview

Provides filter() methods to convert a raw point cloud into segments, features, etc. More…

#include <LidarFilterBase.h>

class LidarFilterBase:
    public CObject,
    public COutputLogger
{
public:
    // methods

    virtual void initialize(const std::string& cfg_block) = 0;
};

// direct descendants

class FilterEdgesPlanes;

Detailed Documentation

Provides filter() methods to convert a raw point cloud into segments, features, etc. depending on the derived class implementation.

Different signatures exists for:

  • 2D LiDAR range scans (mrpt::obs::CObservation2DRangeScan)
  • 3D Velodyne scans (mrpt::obs::CObservationVelodyneScan)
  • 3D RGBD camera images (mrpt::obs::CObservation3DRangeScan)
  • Generic 2D/3D point clouds (mrpt::obs::CObservationPointCloud)

Notice that the methods using scans instead of point cloud have computational advantages since they have a direct access to the raw ordering of points in the scan, instead of simply their 3D coordinates.

A call to filter() will first try to use the derived-class specific methods for the particular kind of observation passed as input. If that observation-specific method is not implemented in the base class, the observation will then be converted on-the-fly into a point cloud, and the corresponding method will be called. If that one is neither implemented, an exception will be raised.

Derived classes may implement all or only one of those methods. An exception NotImplementedError will be thrown if an non-implemented method is called.

filter() is not required to be thread (multientry) safe.

See also:

Implementation in FilterEdgesPlanes

Methods

virtual void initialize(const std::string& cfg_block) = 0

Loads, from a YAML configuration block, all the common, and implementation-specific parameters.