open3DCV depends on mostly header-only libraries, the complete dependencies are as follows:

  1. CImg is a header-only, open-source, and modern C++ toolkit for image processing.
  2. Eigen3 is a header-only C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  3. VLFeat implements popular computer vision algorithms specializing in image understanding and local features extraction and matching.
  4. nanoflann is a header-only C++ library for approximate nearest neighbor search.
  5. RpolyPlusPlus is a header-only polynomial root-finding library. It implements a three-stage algorithm for finding roots of polynomials with real coefficients as outlined in: “A Three-Stage Algorithm for Real Polynomials Using Quadratic Iteration” by Jenkins and Traub, SIAM 1970.
  6. Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. In particular, open3DCV uses it for Bundle Adjustment.
  7. Catch 2 stands for C++ Automated Test Cases in a Header and is a multi-paradigm test framework for C++, which also supports Objective-C (and maybe C). It is primarily distributed as a single header file, although certain extensions may require additional headers.