Skip to content

C++ project template for developing computer vision applications

License

Notifications You must be signed in to change notification settings

changh95/cpp-cv-project-template

Repository files navigation

title

"It's never been easier than this!"

Purpose 🔥

This repo contains a C++ project template for developing computer vision applications.

Features 🌟

Currently, this repo is going under a rigorous change! Stay tuned for a big update!

  • The project comprise a widely-used C++ project structure.
  • The project supports installing essential toolchains for C++ programming and debugging.
    • git, build-essentials, cppcheck, cmake, clang, gcc, clang-tools, clang-tidy, lldb, lld, libc++, libomp (:heavy_check_mark:)
  • The project supports the following 3rdParty libraries:
    • Python3 + basic packages (numpy, pandas, matplotlib, jupyter notebook, voila, tqdm, nbconvert) (:heavy_check_mark:)
    • Open3D - Python only for now (:heavy_check_mark:)
    • Eigen (:heavy_check_mark:)
    • OpenCV (:heavy_check_mark:)
      • Non-free algorithms currently disabled
    • Ceres-solver (:heavy_check_mark:)
    • GTSAM (:heavy_check_mark:)
    • Pangolin (:heavy_check_mark:)
    • PCL (:heavy_check_mark:)
      • Visualization disabled
    • OpenGL (:heavy_check_mark:)
  • The project supports various tools to make good C++ project practices.
    • GTest (:heavy_check_mark:)
    • spdlog (:heavy_check_mark:)
    • fast-cpp-csv-parser (:heavy_multiplication_x:)
    • nlohmann-json (:heavy_multiplication_x:)

Status legend: :heavy_check_mark: - Fully supported, :white_check_mark: - Partially supported / Build-only, :heavy_multiplication_x: - Not supported yet

How to use 📖

You need Python3 to use the automation scripts for project setup and build.

Linux

# Install Python 3 and required modules
sudo apt install python3 python3-pip
pip3 install pyyaml gitpython

# Edit `setup_config.yaml` to configure project
gedit ./thirdparty/packages.yaml

# Install dependencies
./build_dependencies.py
  • Edit the packages.yaml file to configure your project dependencies.
  • You can also use the optional --password YOUR_PASSWORD argument to avoid manually typing your Linux password for every internal sudo command usage.
  • You can also use the optional --d argument to also build debug libraries.
  • You can also use the optional --system argument to build inside the system.

Windows

MacOS

  • For now, MacOS native build is not supported.

License 🏦

This repo is licensed under MIT license. Click here to view the license.

Contributors 😎

Thanks goes to these wonderful people!


changh95

💻

pacientes

💻

gst

💻