diff --git a/Modules/Applications/AppHyperspectral/app/otbEndmemberNumberEstimation.cxx b/Modules/Applications/AppHyperspectral/app/otbEndmemberNumberEstimation.cxx index 6b5781f77cd05661190d1199a78da28ce6bf1419..cdb031e3f00ca7cef6875cc5aac6cbc8324c4b9e 100644 --- a/Modules/Applications/AppHyperspectral/app/otbEndmemberNumberEstimation.cxx +++ b/Modules/Applications/AppHyperspectral/app/otbEndmemberNumberEstimation.cxx @@ -44,36 +44,40 @@ public: itkTypeMacro(EndmemberNumberEstimation, otb::Application); - typedef otb::StreamingStatisticsVectorImageFilter<FloatVectorImageType, float> - StreamingStatisticsVectorImageFilterType; - typedef otb::VirtualDimensionality<float> VirtualDimensionalityType; - typedef otb::EigenvalueLikelihoodMaximisation<float> EigenvalueLikelihoodMaximisationType; + typedef otb::StreamingStatisticsVectorImageFilter<FloatVectorImageType, float> StreamingStatisticsVectorImageFilterType; + typedef otb::VirtualDimensionality<float> VirtualDimensionalityType; + typedef otb::EigenvalueLikelihoodMaximisation<float> EigenvalueLikelihoodMaximisationType; private: void DoInit() override { SetName("EndmemberNumberEstimation"); - SetDescription("Estimates the number of endmembers in a hyperspectral image"); + SetDescription("Estimate the number of endmembers in a hyperspectral image"); // Documentation SetDocName("Endmember Number Estimation"); - SetDocLongDescription("This application estimates the number of endmembers " - "in a hyperspectral image. It first computes statistics on the image and then " + SetDocLongDescription("Estimate the number of endmembers " + "in a hyperspectral image. First, compute statistics on the image and then " "apply an endmember number estimation algorithm using these statistics. Two " - "algorithms are available: \n\n " - " 1) Virtual Dimensionality (VD) [1] [2] \n " - " 2) Eigenvalue Likelihood Maximization (ELM) [3][4] \n" - "The application then returns the estimated number of endmembers. \n\n " - "References : \n\n " + "algorithms are available:\n\n" + + "1. Virtual Dimensionality (VD) [1][2]\n" + "2. Eigenvalue Likelihood Maximization (ELM) [3][4]\n\n" + + "The application then returns the estimated number of endmembers.\n\n" + "[1] C.-I. Chang and Q. Du, Estimation of number of spectrally distinct signal " "sources in hyperspectral imagery, IEEE Transactions on Geoscience and Remote " - "Sensing, vol. 43, no. 3, mar 2004. \n " + "Sensing, vol. 43, no. 3, mar 2004.\n\n" + "[2] J. Wang and C.-I. Chang, Applications of independent component analysis " "in endmember extraction and abundance quantification for hyperspectral imagery" ", IEEE Transactions on Geoscience and Remote Sensing, vol. 44, no. 9, pp. " - "2601-1616, sep 2006. \n " + "2601-1616, sep 2006.\n\n" + "[3] Unsupervised Endmember Extraction of Martian Hyperspectral Images, B.Luo, " - "J. Chanussot, S. Dout\'e and X. Ceamanos, IEEE Whispers 2009, Grenoble France, 2009 \n " + "J. Chanussot, S. Dout\'e and X. Ceamanos, IEEE Whispers 2009, Grenoble France, 2009\n\n" + "[4] Unsupervised classification of hyperspectral images by using " "linear unmixing algorithm Luo, B. and Chanussot, J., IEEE Int. Conf. On Image" "Processing(ICIP) 2009, Cairo, Egypte, 2009" @@ -90,10 +94,10 @@ private: AddParameter(ParameterType_Choice, "algo", "Unmixing algorithm"); SetParameterDescription("algo", "The algorithm to use for the estimation"); - AddChoice("algo.elm", "elm"); - SetParameterDescription("algo.elm", "Eigenvalue Likelihood Maximization algorithm"); - AddChoice("algo.vd", "vd"); - SetParameterDescription("algo.vd", "Virtual Dimensionality algorithm"); + AddChoice("algo.elm", "Eigenvalue Likelihood Maximization"); + SetParameterDescription("algo.elm", ""); + AddChoice("algo.vd", "Virtual Dimensionality"); + SetParameterDescription("algo.vd", ""); AddParameter( ParameterType_Float , "algo.vd.far" , "False alarm rate"); SetMinimumParameterFloatValue("algo.vd.far", 0); @@ -126,7 +130,7 @@ private: // Load input image auto inputImage = GetParameterImage("in"); - otbAppLogINFO("Computing statistics on input image ..."); + otbAppLogINFO("Computing statistics on input image..."); auto statisticsFilter = StreamingStatisticsVectorImageFilterType::New(); statisticsFilter->SetInput(inputImage); @@ -140,7 +144,7 @@ private: const std::string algorithm = GetParameterString("algo"); if (algorithm=="elm") { - otbAppLogINFO("Estimation algorithm : Eigenvalue Likelihood Maximization."); + otbAppLogINFO("Estimation algorithm: Eigenvalue Likelihood Maximization."); auto elm = EigenvalueLikelihoodMaximisationType::New(); elm->SetCovariance(covarianceMatrix); elm->SetCorrelation(correlationMatrix); @@ -150,7 +154,7 @@ private: } else if (algorithm=="vd") { - otbAppLogINFO("Estimation algorithm : Virtual Dimensionality."); + otbAppLogINFO("Estimation algorithm: Virtual Dimensionality."); auto vd = VirtualDimensionalityType::New(); vd->SetCovariance(covarianceMatrix); vd->SetCorrelation(correlationMatrix);