C++ Headers

This is an overview of how the C++ headers are organised in the installation directory for the CV module.

Below, <install-prefix> refers to the path where the SDK is installed. The default values depends on your operating system and installation:

  • Ubuntu: /usr when installing with the packages and /usr/local when building from source code with the deployment step

  • Windows: C:\Program Files\Prophesee

The headers of the SDK CV module are grouped semantically under high-level folders:

<install-prefix>/include/metavision/sdk
├── cv
│   ├── algorithms
│   ├── configs
│   ├── events
│   │   ├── detail
│   │   └── ...
│   ├── pipeline
│   └── utils
│       ├── detail
│       └── ...
└── other modules...

In addition to the headers, some folders optionally have a detail folder. The detail folders contain the code that has been removed from the main headers in order to make them more readable. detail folders include method implementations, helpers, macros, etc. which are not meant to be included directly in your application.

Algorithms

The algorithms folder contains a collection of common algorithms used to process or filter events. These algorithms are, most of the time, implemented as classes with a process_events method working on ranges of events. Similarly to what is used in the C++ STL algorithms (http://www.cplusplus.com/reference/algorithm), we represent the ranges of events by a pair of iterators or pointers for the input and a starting iterator or a pointer for the output.

For example, ActivityNoiseFilterAlgorithm implements an algorithm that filters events based on their activity. It exposes this function template, which takes a pair of iterators as input (it_begin and it_end) and outputs filtered events to the inserter iterator:

template<class InputIt, class OutputIt>
inline OutputIt process_events(InputIt it_begin, InputIt it_end, OutputIt inserter)

Configs

The configs folder contains headers defining the configurations for some of algorithms.

Events

The events folder contains class definitions for events output by processing algorithms, like Metavision::Event2dFrequency, Metavision::EventOpticalFlow, etc.

Pipeline

The pipeline folder contains a header that defines the FlowFrameGenerationStage class implementing a pipeline stage for FlowFrameGeneratorAlgorithm.

Utils

The utils folder contains assorted utilities that are deemed generally useful but don’t belong to any other category.