Skip to content

cggos/ccv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

285 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CCV (Chenguang Computer Vision)

License Build Status

CCV (Chenguang Computer Vision) is a comprehensive computer vision library that provides foundational mathematics, kinematics, dynamics, estimation, and core CV algorithms.

Overview

The core algorithmic implementation is designed to have no third-party dependencies (no OpenCV, Eigen, or PCL in core logic), ensuring it is highly portable and cross-platform. Alongside the core library, this repository contains a variety of wrappers, demos, and GUI applications (C++, Python, Java, C#) demonstrating integrations with major industry tools like OpenCV, PCL, OpenGL, Pangolin, Qt, and ROS.

Key Features

  • Zero Dependencies: Core modules are written from scratch for maximum portability.
  • Modular Design: Compile only what you need using CMake flags.
  • High Performance: Uses a FLOAT macro to toggle between single and double precision.
  • Robust Testing: Validated against industry standards (Eigen, OpenCV) using GTest.
  • Well Documented: Mathematical formulas are explicitly annotated in Doxygen comments with LaTeX.

Core Modules

πŸ“ Maths

Basic math methods, matrices, and vectors.

  • Random Number Generation
  • Matrix & Vector Structures
  • Interpolation (Linear, Bilinear)
  • SVD Decomposition

πŸ›°οΈ Kinematics and Dynamics

Rotation matrices, Hamilton quaternions, and Euler angles.

  • Rotation Matrix
  • Quaternion (Hamilton)
  • Euler Angle (12 conventions)
  • Converters (with small-angle approximations)

πŸ“ˆ Estimation

State estimation for SLAM, filters, and optimization.

  • Filters (EKF, Particle Filter)
  • MAP (Gauss-Newton, Levenberg-Marquardt)
  • Bundle Adjustment (Sparse Hessian)
  • Solver Interfaces (Ceres, G2O, GTSAM)

πŸ“· Computer Vision

2D/3D data structures and core vision algorithms.

  • Basic Structures (Size, Point2, Point3)
  • 2D Image Processing (Copy, Gaussian Filter, Pyramids)
  • 2D Features (FAST)
  • 2D Features (ORB)
  • Camera Models & Binocular Stereo Vision

Building and Running

CMake (Standalone)

# Configure the project
# Flags: -DBUILD_TEST=ON, -DBUILD_DOCS=ON, -DWITH_OPENCV=ON, -DWITH_PCL=ON, -DWITH_GL=ON
cmake -S ./ -B build -DBUILD_TEST=ON

# Build and install
cmake --build build --target install/strip --parallel $(($(nproc) / 4))

# (For CMake >= 3.15)
# cmake --install build --prefix /opt/ccv

ROS (using catkin_tools)

catkin build -j$(nproc) -DWITH_ROS=ON -DWITH_PCL=ON ccv

Apps & Integrations

  • CVStudio: A comprehensive GUI application for computer vision using Qt.
  • MedAI: Medical Artificial Intelligence project integrating computer vision and deep learning.
  • CamKit: A collection of camera utilities (Android, V4L2, MIPI, RealSense, ROS).
  • Language Wrappers:
    • Python: Available via pip install libccv. See python/libccv/img_match_graph.py for match visualization.
    • Java/C#: Desktop Image Processing (DIP) demos included.
  • Industry Demos: Integration examples with OpenCV, PCL, OpenGL, Pangolin, and FFTW.


C# DIP Demo on Ubuntu


Development

The codebase follows the Google C++ Code Style. For detailed guidelines on contributions, testing, and documentation, see CONTRIBUTING.md.

  • Unit Tests: Located in unit_test/, powered by GTest.
  • Documentation: Generate Doxygen docs with cmake --build build --target docs.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

CCV (Chenguang Computer Vision) is a comprehensive computer vision library that provides foundational mathematics, kinematics, dynamics, estimation, and core CV algorithms.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors