Fast and Powerful.


The Scyllarus C++ API is aimed at developers who want to integrate Hyperspectral Processing into their application, or would like to build an application that makes use of the features of Scyllarus. Scyven, the ‘Scyllarus Visualisation Environment’ is built upon the Scyllarus C++ API, if you want to see the features of the API in action, you can check it out now.
The Scyllarus C++ API includes many powerful image processing features and tools targeted at Hyperspectral Imaging applications. With an easy to use modular design, it’s simple to integrate the Scyllarus API into your project.


  • Camera agnostic, compatible with all raw Hyperspectral data;
  • Load and Save Hyperspectral Image data in the following formats:
  • Automatic Illuminant recovery – the only input is the image;
  • Automatic Reflectance recovery – no calibration required;
  • Automatic Spectra based material clustering/segmentation, fast estimation method available;
  • Principal Component Analysis and Spectral Angle Mapping algorithms;
  • Load and save Spectral Libraries and perform Spectral Unmixing;
  • NURBS (Non-Uniform Rational B-Spline) encoding/decoding of spectral signatures and images;
  • Fast and low memory overhead Hyperspectral Image manipulation features: Crop, Resize, Remove Bands, Align Bands;
  • Streamlined pipeline processing model – adding an image and processing for results takes only a few lines of code;
  • Algorithms optimised for multi-processor machines;
  • Accelerated by Armadillo, BLAS, LAPACK, OpenCV, OpenMP and Boost.


  • Extensive documentation;
  • Example programs that use the API – See;
  • Ongoing development – addition of features, performance and memory enhancements, bug-fixes (changelog).

The Scyllarus C++ API image processing model closely mirrors the logical workflow process used for analysing Hyperspectral data. You can see how the processing pipeline implemented by the Scyllarus API relates closely to the workflow described here.

After setting up input for the Pipeline object, running the pipeline is fully automated, triggered calling the method ‘process()’ on the Pipeline object. Once completed, you will have access to all the processing results and be able to save processed data in the HSZ format. The code is highly modular, giving you full reign to modify processing parameters and construct a customised processing pipeline. For a full code example on how the Scyllarus C++ API can be used, see ‘cli_pipeline.cpp

Download the source code here: Browse SCYLLARUS-RELEASE / scyllarus-api – Bitbucket (

View the changelog