Skip to content

MisanthropicBit/cvx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cvx

Build Status

This project is currently under development

cvx is a C++ library that aims to provide a generic, STL-like, and image-agnostic interface to fast connected component labelling (CCL) and feature extraction.

Due to its STL-like interface, cvx works with any image data that can be described by random access iterators (see the examples/ folder).

Feature Extraction

At the moment, cvx supports 4- and 8-connectedness and can currently extract the following component features:

  • Areas
  • Centroids
  • Points
  • Bounding boxes
  • Extents

cvx will support the following features in the future:

  • Convex hulls (including their areas and additional properties)
  • Outer contours
  • Inner contours
  • Ellipses
  • Circularity

any hopefully many more...

Building cvx

Run the following:

mkdir cxv
cd cvx
git clone https://github.com/MisanthropicBit/cvx.git
mkdir build
cd build
cmake <options> ..

cvx can be built as a static or shared library. Below is a list of all the available options:

  • CVX_STATIC_LIBRARY: Build cvx as a static library
  • CVX_SHARED_LIBRARY: Build cvx as a shared library (default)
  • CVX_BUILD_EXAMPLES: Build all examples
  • CVX_BUILD_TESTS : Build all tests
  • CVX_GEN_DOCS : Build local documentation
  • CVX_WITH_OPENCV : Also build examples that require OpenCV, and add display support to cvx

Running the tests

After successully building cvx with the CVX_BUILD_TESTS flag, run make test in the build directory.

About

A generic, STL-like and image-agnostic C++ library for connected component labelling and feature extraction.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published