An Extensive MATLAB® Library for Imaging Spectroscopy Research

The Scyllarus MATLAB® Toolbox is aimed at supporting research into Hyperspectral and Multispectral image processing. Scyllarus is implemented separately in this Toolbox to that of the C++ API, it is more comprehensive and provides features that cannot be found in the C++ API. It represents the bleeding edge of our research into spectral technologies at NICTA.


  • Spectrum management, combination and resampling functions
  • Unmixing of reflectances based on component endmember spectra
  • Unmixing of illumination spectrum based on canonical illuminant spectra
  • Decomposition of the scene into a set of object materials using
    • Deterministic annealing
    • K-means
  • Image reformatting and resampling functions
  • Representation of the spectral data using smooth functions based on
    • Gaussian functions
    • NURBS (Non-uniform Rational B-Splines)
  • Recovering an RGB image from a Hyperspectral image
  • HSZ file format operation functions

File Formats

  • Support for reading and writing ENVI standard header files.
  • Compressed Image Format – HSZ, NICTA’s Hyperspectral compressed image format, for storing Hyperspectral and multispectral images
    • Supported for both reading and writing
    • Native support of Gaussian and NURBS spectra representations
    • Based on the well-known HDF5 format and libraries
    • See here for more information about NICTA’s HSZ compressed Hyperspectral image format
  • Spectral Library Format – SLZ, NICTA’s Spectrum Library file format
    • Supported for both reading and writing
    • Based on the well-known HDF5 format and libraries
    • Can be used to store Illuminant spectra, material reflectance spectra, sensitivity functions, etc.
    • Native support of Gaussian and NURBS spectra representations

Illuminant Recovery Methods

The following Illuminant recovery methods are supported

  • Huynh and Robles-Kelly  (Huynh & Robles-Kelly, 2010)
  • Finlayson and Schaeffer (Finlayson & Schaefer, 2001)
  • Grey World (Buchsbaum, 1980)
  • White Patch Method (McCann, Hall, & Land, 1977)
  • Grey Edge Method (van de Weijer, Gevers, & Gijsenij, 2007)

Recovery of Object Shading and Specularity

The following methods are supported.

  • Huynh and Robles-Kelly (Huynh & Robles-Kelly, 2010)
  • Gu, Robles-Kelly and Zhou (Gu, Robles-Kelly, & Zhou, 2013)
  • Tan and Ikeuchi (Tan & Ikeuchi, 2005) *


Requirements and Download

Scyllarus has been tested on versions of MATLAB® from 2011a onwards. Download size is ~10MB.

The Scyllarus Matlab Toolbox uses the following MATLAB® Toolboxes:

* Items use MEX and are currently Windows x64 only.

If you make use of the Scyllarus MATLAB® toolbox for your research, please cite the relevant papers as indicated within the documentation.


Buchsbaum, G. (1980). A spatial processor model for object colour perception. Journal of the Franklin Institute, 310(1), 337–350.

Finlayson, G. D., & Schaefer, G. (2001). Solving for colour constancy using a constrained dichromatic reflection model. International Journal of Computer Vision, 42(3), 127–144.

Gu, L., Robles-Kelly, A., & Zhou, J. (2013). Efficient Estimation of Reflectance Parameters from Imaging Spectroscopy. IEEE Transactions on Image Processing, 22(9), 3648 – 3663.

Huynh, C. P., & Robles-Kelly, A. (2010). A Solution of the Dichromatic Model for Multispectral Photometric Invariance. International Journal of Computer Vision, 90(1), 1-27.

McCann, J. J., Hall, J. A., & Land, E. H. (1977). Color mondrian experiments: the study of average spectral distributions. Journal of the Optical Society of America A, 67, 1380.

Tan, R. T., & Ikeuchi, K. (2005). Separating Reflection Components of Textured Surfaces from a Single Image. IEEE Transactions on Pattern Analysis and Machine Intelligence, 27(2), 178-193.

van de Weijer, J., Gevers, T., & Gijsenij, A. (2007). Edge-based color constancy. IEEE Transactions on Image Processing, 16(9), 2207–2214.