Skip to content

Number of endmember estimation application

Cédric Traizet requested to merge number_of_endmember_estimation into develop


Application for number of endmembers estimation in hyperspectral images.


There are two classes in OTB for estimating the number of endmembers in hyperspectral images, one implementing the virtual dimensionality algorithm and the other using the Eigenvalue Likelihood Maximization algorithm, but there are no application corresponding to these algorithm.

This MR adds an application for the endmember number estimation. The application will first compute the covariance and correlation matrices of the input image using a otb::StreamingStatisticsVectorImageFilter and then use a EigenvalueLikelihoodMaximisation or a VirtualDimensionality object with the computed statistics to output an estimation of the number of endmembers.

Implementation Details

Classes and files

New file otbEndmemberNumberEstimation.cxx where the new application is implemented.


A new application has been created : EndmemberNumberEstimation, it has the following parameters :

  • in : input multi-channel image
  • number: number of endmembers
  • algo : chosen algorithm
    • elm : eigenvalue likelihood maximization
    • vd : virtual dimensionality
  • algo.vd.far : false alarm rate for the virtual dimensionality algorithm.
  • ram : ram parameter


New validation tests for both algorithms.


The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.

Check before merging:

  • All discussions are resolved
  • At least 2 👍 votes from core developers, no 👎 vote.
  • The feature branch is (reasonably) up-to-date with the base branch
  • Dashboard is green
  • Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
Edited by Cédric Traizet

Merge request reports