From cf51ccb38e68c3b513251b91560d5adc8e748926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= <cedric.traizet@c-s.fr> Date: Wed, 17 Apr 2019 11:12:18 +0200 Subject: [PATCH] ENH: input centroid file in the composite application --- .../app/otbKMeansClassification.cxx | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Modules/Applications/AppClassification/app/otbKMeansClassification.cxx b/Modules/Applications/AppClassification/app/otbKMeansClassification.cxx index eeb30c2499..41bbc998ce 100644 --- a/Modules/Applications/AppClassification/app/otbKMeansClassification.cxx +++ b/Modules/Applications/AppClassification/app/otbKMeansClassification.cxx @@ -81,9 +81,13 @@ protected: SetDefaultParameterInt("maxit", 1000); MandatoryOff("maxit"); - AddParameter(ParameterType_String, "incentroid", "Maximum number of iterations"); - SetParameterDescription("incentroid", "Maximum number of iterations for the learning step."); - MandatoryOff("incentroid"); + AddParameter(ParameterType_String, "inmeans", "Maximum number of iterations"); + SetParameterDescription("inmeans", "Maximum number of iterations for the learning step."); + MandatoryOff("inmeans"); + + AddParameter(ParameterType_Bool, "normalizeinmeans", "Number of classes"); + SetParameterDescription("normalizeinmeans", "Number of modes, which will be used to generate class membership."); + SetDefaultParameterInt("normalizeinmeans", true); AddParameter(ParameterType_OutputFilename, "outmeans", "Centroid filename"); SetParameterDescription("outmeans", "Output text file containing centroid positions"); @@ -252,8 +256,15 @@ protected: GetParameterInt("maxit")); GetInternalApplication("training")->SetParameterInt("classifier.sharkkm.k", GetParameterInt("nc")); - GetInternalApplication("training")->SetParameterString("classifier.sharkkm.incentroid", - GetParameterString("incentroid")); + if(IsParameterEnabled("inmeans") && HasValue("inmeans")) + { + GetInternalApplication("training")->SetParameterString("classifier.sharkkm.centroids", + GetParameterString("inmeans")); + if(GetParameterInt("normalizeinmeans")) + GetInternalApplication("training")->SetParameterString("classifier.sharkkm.centroidstats", + GetInternalApplication("imgstats")->GetParameterString("out")); + } + if( IsParameterEnabled("rand")) GetInternalApplication("training")->SetParameterInt("rand", GetParameterInt("rand")); -- GitLab