Open modules samples
Table of Contents
Open modules C++ samples
C++ samples of the open modules allow you to understand the building blocks of the SDK by starting from basic examples. If you want to start programming from the ground up, you should start with the C++ Get Started tutorial.
In the following table, for each sample, you will find:
its module
the main algorithms or classes demonstrated in the sample
Name |
Description |
Module |
UI framework used for display |
Main algorithms or classes demonstrated in the sample |
---|---|---|---|---|
Prints information on the installed software (e.g. software version) |
Base |
N/A |
||
Sample explained step by step that shows how to print statistics and display frames from an event-based camera or from a RAW file |
Core |
SDK UI |
||
Application that detects and masks active pixels (application designed for future sensors) |
Stream |
OpenCV |
||
Slices a stream of events into slices of a fixed number of events or a fixed time duration |
Stream |
OpenCV |
||
Slices a stream of events from a master and slaves cameras into slices of a fixed number of events or a fixed time duration |
Stream |
OpenCV |
||
Displays data from an event-based camera or from a RAW, DAT or HDF5 file using SDK Stream API |
Stream |
OpenCV |
||
Displays data from an EVK3D stream as a depth map |
Stream |
OpenCV |
||
Cuts RAW or HDF5 event file from/to given time |
Stream |
N/A |
||
Gets information about an event file and prints it to console |
Stream |
N/A |
||
Converts an event file to CSV-formatted file in C++ |
Stream |
N/A |
||
Converts an event file to DAT-formatted file |
Stream |
N/A |
||
Converts an event file to an HDF5 event file in C++ |
Stream |
N/A |
||
Re-encodes an event file to a RAW EVT2 event file in C++ |
Stream |
N/A |
||
Converts an event file to an AVI video |
Core |
N/A |
||
Filters events (ROI + polarity) and displays them on the screen |
Core |
SDK UI |
||
Filters events and shows both unfiltered and filtered events |
Core |
SDK UI |
|
|
Reads CSV-formatted file and displays events on the screen |
Core |
SDK UI |
|
|
Generate and displays histo/diff event frames from event files |
Core |
SDK UI |
||
Preprocesses raw event frame files on a GPU using CUDA |
Core |
N/A |
||
Generates grayscale images from integrated events |
Core |
SDK UI |
||
Displays Time Surface of events |
Core |
SDK UI |
||
Detects the object generating most events x-wise in a RADAR-like display |
Core |
SDK UI |
||
Shows how to create and interact with basic windows |
UI |
SDK UI |
Open modules Python samples
Python samples of the open modules allow you to understand the building blocks of the SDK by starting from basic examples. If you want to start programming from the ground up, you should start with the Python Get started tutorial.
In the following table, for each sample, you will find its modules and the main algorithms or classes demonstrated in the sample.
Name |
Description |
Module |
Main algorithms or classes demonstrated in the sample |
---|---|---|---|
Sample explained step by step that shows how to print statistics and display frames from an event-based camera or from a RAW file |
Core |
||
Displays events from an event-based camera or from an event file (RAW, DAT or HDF5) |
Core |
||
Record events from an event-based camera to a RAW file |
Core |
||
Converts event file (RAW, DAT or HDF5) file to CSV-formatted file in Python |
Core |
||
Filters events (ROI + polarity) and displays them on the screen |
Core |
||
Reads CSV-formatted file and displays events on the screen |
Core |
||
Reads multiple AER event file formats and displays events on the screen |
Core |
||
Synchronizes event-based cameras |
Core |
||
Reads RAW, dynamically splits into event frames based on the content of the stream, and displays result on screen |
Core |
||
Displays Time Surface of events |
Core |
||
Displays the content of histo and diff event frames files |
Core |
|
|
Generates grayscale images from integrated events |
Core |
||
Re-encodes an event file to a RAW EVT2 event file in Python |
Stream |
||
Slices a stream of events into slices of a fixed number of events or a fixed time duration |
Stream |
||
Slices a stream of events from a master and slaves cameras into slices of a fixed number of events or a fixed time duration |
Stream |
||
Demonstrates Event to Video ML pipeline |
Core ML |
||
Trains Event to Video ML pipeline |
Core ML |
||
Visualize Event to Video training data |
Core ML |
||
Demonstrates CPU Video to Event ML pipeline |
Core ML |
||
Demonstrates GPU Video to Event ML pipeline |
Core ML |
||
Demonstrates Corner Detection ML pipeline |
Core ML |
||
Trains Corner Detection ML pipeline |
Core ML |
HAL Samples
HAL is the API to access camera functionalities in a generic way (i.e. hiding the hardware specificities of each device). You can discover how to operate and tune sensors and cameras using this API. The samples listed in the table below can be used as starting point.
Note
If you want to build a full-featured application in C++ (with display, data conversion etc.),
you might consider using the Stream module that offers a user-friendly API to
access the camera and the data with the Camera class (Metavision::Camera
). Follow the tutorial
Get Started using C++ to discover SDK Stream C++ API.
If you want to code in Python using a higher-level API than HAL, follow
the tutorial Python Get started that shows how you can
use EventsIterator
to stream events.
HAL C++ Samples
Name |
Description |
Main algorithm or class demonstrated in the sample |
---|---|---|
Lists all connected Prophesee devices |
||
Prints information on the platform, connected devices, and installed software (useful for debug) |
||
Cuts RAW file from/to given time |
||
Seek in a RAW file |
||
Showcases various HAL API facilities |
||
Synchronizes event-based cameras |
||
Provides an example of HAL plugin for a toy camera (software-simulated) |
||
Provides an example of HAL plugin for a Prophesee EVK4 |
HAL Python Sample
Currently, we offer just one basic example for the HAL Python API, which serves as a foundational code template to help you get started. For more advanced usage, you might look at the C++ HAL samples (especially metavision_hal_showcase, which demonstrates multiple facilities) and adapt them into Python.
Name |
Description |
Main algorithm or class demonstrated in the sample |
---|---|---|
Reads events from an event-based camera or from a RAW file |
Camera Plugins Samples
Some samples are showing advanced usage of our sensors.
When installing the SDK from packages/installer, those samples can be found in :
<install-prefix>/share/metavision/hal_psee_plugins/cpp_samples/SAMPLE_NAME
.
Name |
Description |
Sensor |
---|---|---|
metavision_imx636_facility_casting_sample |
Accesses sensor specific implementations of HAL facilities. For more information, check Hardware Layer Library page. |
IMX636 |
metavision_riscv_logger |
Receives log messages from an application embedded in the sensor For more information, launch |
GenX320 |
Samples listed by Module
- HAL
- Base
- Core
- Adaptive Rate Events Splitter using Python
- Composed Viewer Sample using C++
- CSV Viewer Sample using Python
- CSV Viewer Sample using C++
- Event Frame Generation Sample using C++
- Event Frame GPU Loading Sample using C++
- Events Integration using Python
- Events Integration using C++
- Event Frame Viewer Sample using Python
- Filtering using Python
- Filtering using C++
- Interoperability Sample using Python
- File to Video
- File to CSV Sample using Python
- Dummy Radar Sample using C++
- Simple Recorder using Python
- Simple Viewer using Python
- Sync Sample
- Time Surface Sample using C++
- Time Surface Sample using Python
- Core ML
- Stream
- Active Pixel Detection
- Camera Stream Slicer using C++
- Camera Stream Slicer using Python
- EVK3D viewer
- File Cutter
- File Info
- File to CSV
- File to DAT
- File to HDF5
- RAW EVT Encoder using C++
- RAW EVT Encoder using Python
- Synced Camera Streams Slicer using C++
- Synced Camera Streams Slicer using Python
- Metavision Viewer
- UI