openMVG use some third party libraries. It is not necessary to write again something that exists and already well designed. The libraries are included in the openMVG in order to ease compilation and usage.


[Ceres] Solver is a portable C++ library that allows for modeling and solving large complicated nonlinear least squares problems.

The cxsparse backend is included in openMVG.


A tiny library to handle C++ command line with named parameters.


[CppUnitLite] is a tiny library to handle UNIT test.


[Eigen] is a high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers.

Eigen is used for:
  • dense matrix and array manipulations,
  • sparse matrix container.


[FLANN] is a library for performing fast approximate nearest neighbor searches in high dimensional spaces.


A tiny class to compute data distribution of data in a provided data range.


A class to ease HTML data export


[LEMON] stands for Library for Efficient Modeling and Optimization in Networks. It is a C++ template library providing efficient implementations of common data structures and algorithms with focus on combinatorial optimization tasks connected mainly with graphs and networks.


A tiny class to handle progress status of an application


A collection of tools to extend the STL library.


[STLplus] is a collection of reusable C++ components for developers already familiar with the STL. Only the file_system component is used: It provides access to a set of operating-system independent file and folder handling functions.

Image Input/Ouput

  • jpeg
  • png
  • zlib