Getting Started - Building the library
RidgeRun Video Stabilization Library RidgeRun documentation is currently under development. |
Dependencies
The RidgeRun Video Stabilization Library has the following dependencies for building from source:
Compulsory
A C++ compiler compatible with C++-17.
If GNUCompiler should be installed, we recommend the GNU Compiler >= 9.x.
Moreover, we use the meson building system. You can install it using:
# Install PIP sudo apt install python3 python3-pip # Install ninja sudo apt install ninja-build pkg-config # Install meson sudo pip3 install meson
Semi-Optional
The RidgeRun Video Stabilization Library is built on top of three different backends: OpenCV, OpenCL and CUDA. One of the three must exist in the system. If you are on a Debian-based system, you can install these dependencies using:
OpenCV: For all platforms for CPU execution.
sudo apt install libopencv-core* libopencv-highgui* libopencv-imgproc* libopencv-imgcodecs* libopencv-dev
OpenCL: For non-NVIDIA platforms.
sudo apt install opencl-headers
It may depend on your system
CUDA: For NVIDIA-based platforms (in progress).
sudo apt install cuda-toolkit-*
Optional
For documentation, development and plotting, you can install the following dependencies:
# For documentation sudo apt install doxygen graphviz # For plotting sudo apt install libboost-filesystem-dev libboost-system-dev libboost-iostreams libgnuplot-iostream-dev # For development pip3 install pre-commit sudo apt install clang-format cpp-check
In the following sections, you can see how to install the dependencies mentioned before.
GStreamer Support
Under Development for Q3 2024
The process should be similar in other systems, not based on Debian.
Building the project
Once the dependencies have been, you can run a default compilation with the following:
meson build --optimization 3 --prefix /usr -Denable-docs=disabled -Ddeveloper-mode=false ninja -C build sudo ninja -C build install
For additional customization, you may refer to the following table of options:
Configure Option | Description | Values | Default |
---|---|---|---|
-Ddeveloper-mode | Enable developer mode | true, false | true |
-Denable-docs | Enable the documentation generation | disabled, enabled | enabled |
-Denable-eval | Enable the evaluation system. | disabled, enabled | disabled |
-Denable-tests | Enable the compilation of the tests. | disabled, enabled | enabled |
-Denable-examples | Enable the compilation of the examples. | disabled, enabled | enabled |
-Denable-plots | Enable the compilation of the plotter. | disabled, enabled | enabled |
-Denable-opencv | Enable the OpenCV backend compilation (CPU processing) | disabled, enabled | enabled |
-Denable-opencl | Enable the OpenCL backend compilation (GPU processing) | disabled, enabled | enabled |
-Denable-cuda | Enable the CUDA backend compilation (GPU processing) | disabled, enabled | enabled |
--prefix /usr | Set the installation path of the library | PATH | /usr/local |
--optimization 3 | Set the optimization level to the maximum | 0, 1, 2, 3 | 0 |
Note: If the dependency is not found, it will skip the compilation, and a message will be shown during the construction.
Running tests
You can test the final construction results of the library using the test suite:
ninja -C builddir test
Moreover, if the examples were enabled, you can run them as well: Examples Guidebook