VVingerfly / awesome-cpp-libs

😎Collection of awesome cpp libraries for cv/cg researchers
5 stars 3 forks source link
awesome awesome-list cg computer-graphics computer-vision cpp cv

Awesome Cpp Libs

Awesome

An awesome & curated list of cpp libraries for CV/CGers.


Table of Contents


Cpp

Base Libraries

stb

Stars Forks Watchers License

single-file public domain (or MIT licensed) libraries for C/C++

abseil-cpp

Stars Forks Watchers License

Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library.

Command Line Parser

cxxopts

Stars Forks Watchers License

Lightweight C++ command line option parser.

Logging

spdlog

Stars Forks Watchers License

spdlog is a very fast, header-only/compiled, C++ logging library.

plog

Stars Forks Watchers License

plog is a portable, simple and extensible C++ logging library, pretty powerful logging library in about 1000 lines of code.

loguru

Stars Forks Watchers License

loguru is a lightweight and flexible C++ logging library.

Profiler

easy_profiler

Stars Forks Watchers License

easy_profiler is lightweight cross-platform profiler library for C++.

microprofile

Stars Forks Watchers License

Microprofile is a embeddable profiler in a few files, written in C++

Remotery

Stars Forks Watchers License

Remotery is a realtime CPU/GPU profiler hosted in a single C file with a viewer that runs in a web browser.

Format String

fmt

Stars Forks Watchers License

{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams.

tinyformat

Stars Forks Watchers License

tinyformat.h is a type safe printf replacement library in a single C++ header file.

Testing

Catch2

Stars Forks Watchers License

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Serialization

cereal

Stars Forks Watchers License

cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone.

json

Stars Forks Watchers License

JSON for Modern C++

jsoncpp

Stars Forks Watchers License

JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings.

rapidjson

Stars Forks Watchers License

A fast JSON parser/generator for C++ with both SAX/DOM style API

GUI

imgui

Stars Forks Watchers License

Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies).

nanogui

Stars Forks Watchers License

NanoGUI is a minimalistic cross-platform widget library for OpenGL 3.x or higher. It supports automatic layout generation, stateful C++11 lambdas callbacks, a variety of useful widget types and Retina-capable rendering on Apple devices thanks to NanoVG by Mikko Mononen. Python bindings of all functionality are provided using pybind11.

Visualization

matplotplusplus

Stars Forks Watchers License

Matplot++: A C++ Graphics Library for Data Visualization.

implot

Stars Forks Watchers License

ImPlot is an immediate mode, GPU accelerated plotting library for Dear ImGui.

GPU

compute

Stars Forks Watchers License

A C++ GPU Computing Library for OpenCL

vexcl

Stars Forks Watchers License

VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP

Utility

magic_enum

Stars Forks Watchers License

Magic Enum C++ is a header-only C++17 library provides static reflection for enums, work with any enum type without any macro or boilerplate code.

Math

Linear Algebra

Eigen

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

linalg

Stars Forks Watchers License

linalg.h is a single header, public domain, short vector math library for C++.

NumCpp

Stars Forks Watchers License

NumCpp is a C++ implementation of the Python Numpy library.

Optimization

ceres-solver

Stars Forks Watchers License

Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. Ceres Solver can solve two kinds of problems.

Ipopt

Stars Forks Watchers License

Ipopt (Interior Point OPTimizer) is a software package for large-scale nonlinear optimization.

NLopt

Stars Forks Watchers License

NLopt is a library for nonlinear local and global optimization, for functions with and without gradient information. It is designed as a simple, unified interface and packaging of several free/open-source nonlinear optimization libraries.

AMGCL

Stars Forks Watchers License

AMGCL is a header-only C++ library for solving large sparse linear systems with algebraic multigrid (AMG) method.

optim

Stars Forks Watchers License

OptimLib is a lightweight C++ library of numerical optimization methods for nonlinear functions.

Automatic Differentiation

optim

Stars Forks Watchers License

autodiff is a C++17 library that uses modern and advanced programming techniques to enable automatic computation of derivatives in an efficient, easy, and intuitive way.

FastAD

Stars Forks Watchers License

FastAD is a header-only C++ template library for automatic differentiation supporting both forward and reverse mode.

clad

Stars Forks Watchers License

Clad is a source-transformation automatic differentiation (AD) library for C++, implemented as a plugin for the Clang compiler.

Adept-2

Stars Forks Watchers License

Adept-2 is combined array and automatic differentiation library in C++.

Statistics

stats

Stars Forks Watchers License

StatsLib is a templated C++ library of statistical distribution functions, featuring unique compile-time computing capabilities and seamless integration with several popular linear algebra libraries.

CV

Image Processing

OpenCV

Stars Forks Watchers License

Open Source Computer Vision Library.

ccv

Stars Forks Watchers License

C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library.

CImg

Stars Forks Watchers License

CImg Library is a small and open-source C++ toolkit for image processing.

VLFeat

Stars Forks Watchers License

The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching.

Structure from Motion

TheiaSfM

Stars Forks Watchers License

Theia is an open source library for multiview geometry and structure from motion. It is designed to be very efficient, scalable, and accurate. All steps of the pipeline are designed to be modular so that code is easy to read and easy to extend.

COLMAP

Stars Forks Watchers License

COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. It offers a wide range of features for reconstruction of ordered and unordered image collections. The software is licensed under the new BSD license.

bundler_sfm

Stars Forks Watchers License

Bundler Structure from Motion Toolkit

Multi-View Reconstruction

OpenMVG

Stars Forks Watchers License

OpenMVG (Multiple View Geometry) is a library for computer-vision scientists and especially targeted to the Multiple View Geometry community. It is designed to provide an easy access to the classical problem solvers in Multiple View Geometry and solve them accurately.

openMVS

Stars Forks Watchers License

OpenMVS (Multi-View Stereo) is a library for computer-vision scientists and especially targeted to the Multi-View Stereo reconstruction community. The input is a set of camera poses plus the sparse point-cloud and the output is a textured mesh.

AliceVision

Stars Forks Watchers License

AliceVision is a Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms.

CG

Geometry Processing

libigl

Stars Forks Watchers License

A simple C++ geometry processing library.

meshlab

Stars Forks Watchers License

MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured large 3D triangular meshes.

CGAL

Stars Forks Watchers License

The Computational Geometry Algorithms Library (CGAL), a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry.

Geogram

Stars Forks Watchers License

Geogram is a programming library with geometric algorithms. And Graphite is an experimental 3D modeler built around geogram.

Open3D

Stars Forks Watchers License

A modern library for 3D data processing.

vcglib

Stars Forks Watchers License

The Visualization and Computer Graphics Library (VCGlib for short), a open source, portable, C++, templated, no dependency, library for manipulation, processing, cleaning, simplifying triangle meshes. And it is the base of Meshlab.

OpenFlipper

A flexible geometry modeling and processing framework.

geometry-central

Stars Forks Watchers License

Geometry-central is a modern C++ library of data structures and algorithms for geometry processing, with a particular focus on surface meshes.

Polygon Mesh Processing Library

Stars Forks Watchers License

The Polygon Mesh Processing Library is a modern C++ open-source library for processing and visualizing polygon surface meshes.

cinolib

Stars Forks Watchers License

A generic programming header only C++ library for processing polygonal and polyhedral meshes.

Easy3D

Stars Forks Watchers License

Easy3D is an open-source library for 3D modeling, geometry processing, and rendering. It is implemented in C++ and designed with an emphasis on simplicity and efficiency.

starlab

Stars Forks Watchers License

A lightweight, modular, and cross-platform (Windows, OSX, Linux) 3D geometry processing environment.

PointCloud Processing

Point Cloud Library (PCL)

Stars Forks Watchers License

The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.

cilantro

Stars Forks Watchers License

cilantro is a lean and fast C++ library for working with point cloud data.

Draco

Stars Forks Watchers License

Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

CloudCompare

Stars Forks Watchers License

CloudCompare is a 3D point cloud (and triangular mesh) processing software. It was originally designed to perform comparison between two 3D points clouds (such as the ones obtained with a laser scanner) or between a point cloud and a triangular mesh. It relies on an octree structure that is highly optimized for this particular use-case. It was also meant to deal with huge point clouds (typically more than 10 million points, and up to 120 million with 2 GB of memory).

Visualization

polyscope

Stars Forks Watchers License

polyscope is a C++/Python viewer and user interface for 3D data, like meshes and point clouds.

Triangulation

Triangle

A two-dimensional quality mesh generator and delaunay triangulator.

CDT

Stars Forks Watchers License

CDT is a C++ library for generating constraint or conforming Delaunay triangulations.

Texture&Atlas

mvs-texturing

Stars Forks Watchers License

MVS-Texturing is a project that focuses on texturing 3D reconstructions from multi-view stereo images.

xatlas

Stars Forks Watchers License

xatlas is a small C++11 library with no external dependencies that generates unique texture coordinates suitable for baking lightmaps or texture painting.

UVAtlas

Stars Forks Watchers License

UVAtlas is a shared source library for creating and packing an isochart texture atlas.

ptex

Stars Forks Watchers License

Ptex is a texture mapping system developed by Walt Disney Animation Studios for production-quality rendering.

Transformation

manif

Stars Forks Watchers License

manif is a header-only C++11 Lie theory library for state-estimation targeted at robotics applications.

Sophus

Stars Forks Watchers License

Sophus is a c++ implementation of Lie groups commonly used for 2d and 3d geometric problems (i.e. for Computer Vision or Robotics applications). Among others, this package includes the special orthogonal groups SO(2) and SO(3) to present rotations in 2d and 3d as well as the special Euclidean group SE(2) and SE(3) to represent rigid body transformations (i.e. rotations and translations) in 2d and 3d. It is released under a MIT license.

Registration

libpointmatcher

Stars Forks Watchers License

libpointmatcher is a modular library implementing the Iterative Closest Point (ICP) algorithm for aligning point clouds. It has applications in robotics and computer vision. \nIt is released under a permissive BSD license.

OpenGR

Stars Forks Watchers License

OpenGR is a set C++ libraries for 3D Global Registration. And it aims at providing several state of the art global registration algorithms for 3D data.

FastGlobalRegistration

Stars Forks Watchers License

FastGlobalRegistration is an open source C++ implementation based on the technique presented in the paper "Fast Global Registration, ECCV 2016."

ICPCUDA

Stars Forks Watchers License

Super fast implementation of ICP in CUDA for compute capable devices 3.5 or higher. Requires CUDA, includes Pangolin, Eigen and Sophus third party submodules

Nearest Neighbors

ANN

ANN is a library written in C++, which supports data structures and algorithms for both exact and approximate nearest neighbor searching in arbitrarily high dimensions.

nanoflann

Stars Forks Watchers License

A C++11 header-only library for Nearest Neighbor (NN) search with KD-trees.

Collision

fcl-Flexible Collision Library

Stars Forks Watchers License

FCL is a library for performing three types of proximity queries on a pair of geometric models composed of triangles.

Rendering

bgfx

Stars Forks Watchers License

bgfx is a cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

tinyrenderer

Stars Forks Watchers License

A tiny yet powerful rendering library.

yocto-gl

Stars Forks Watchers License

Yocto/GL is a collection of small C++17 libraries for building physically-based graphics algorithms released under the MIT license.

Filament

Stars Forks Watchers License

Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows, and WebGL. It is designed to be as small as possible and as efficient as possible on Android.

Animation

ozz-animation

Stars Forks Watchers License

ozz-animation is an open source c++ 3d skeletal animation library. It provides runtime character animation functionalities (sampling, blending...), with the toolset to import major DCC formats (Collada, Fbx, glTF...). It proposes a low-level renderer and game-engine agnostic implementation, focusing on performance and memory constraints with a data-oriented design.

Simulation

bullet3

Stars Forks Watchers License

Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

pinocchio

Stars Forks Watchers License

Pinocchio is a fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives.

Modeling

OpenSCAD

Stars Forks Watchers License

OpenSCAD is a software for creating solid 3D CAD objects.

Dust3D

Stars Forks Watchers License

Dust3D is a cross-platform open-source 3D modeling software. Auto UV unwrapping, auto rigging with PBR Material support, pose and motion authoring all in one.

Others

quickhull

Stars Forks Watchers License

C++ implementation of the 3D QuickHull algorithm.

QHull

Stars Forks Watchers License

Qhull is a general dimension convex hull program. It also generates Delaunay triangulations, Voronoi diagrams, furthest-site Voronoi diagrams, and halfspace intersections about a point.

Cork Boolean Library

Stars Forks Watchers License

Cork is designed to support Boolean operations between triangle meshes.

Back to Top