Commit 246c30c3 authored by Guillaume Pasero's avatar Guillaume Pasero

MRG: Synchronize with branch 'develop'

parents eda0b065 26fa804e
......@@ -26,7 +26,7 @@ find_path( SHARK_INCLUDE_DIR shark/Core/Shark.h
PATH_SUFFIXES include include/shark shark)
find_library( SHARK_LIBRARY
NAMES shark
NAMES shark shark_debug
PATHS "${SHARK_SEARCH_PATH}"
PATH_SUFFIXES lib
)
......
......@@ -16,8 +16,13 @@ if exist %CURRENT_SCRIPT_DIR%otbApplicationLauncherCommandLine.exe (
setlocal
:: works for install tree
if exist %CURRENT_SCRIPT_DIR%../@OTB_INSTALL_APP_DIR@ (
set OTB_APPLICATION_PATH=%CURRENT_SCRIPT_DIR%../@OTB_INSTALL_APP_DIR@;%OTB_APPLICATION_PATH%
if exist %CURRENT_SCRIPT_DIR%..\@OTB_INSTALL_APP_DIR_NATIVE@ (
set OTB_APPLICATION_PATH=%CURRENT_SCRIPT_DIR%..\@OTB_INSTALL_APP_DIR_NATIVE@;%OTB_APPLICATION_PATH%
)
::set GDAL_DATA, EPSG_CSV and update PATH
if exist %CURRENT_SCRIPT_DIR%\..\otbenv.cmd (
call %CURRENT_SCRIPT_DIR%\..\otbenv.cmd
)
set LC_NUMERIC=C
......
......@@ -86,7 +86,7 @@ set(main_project_name ${_OTBModuleMacros_DEFAULT_LABEL})
#-----------------------------------------------------------------------------
# OTB version number.
set(OTB_VERSION_MAJOR "5")
set(OTB_VERSION_MINOR "9")
set(OTB_VERSION_MINOR "11")
set(OTB_VERSION_PATCH "0")
set(OTB_VERSION_STRING "${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}.${OTB_VERSION_PATCH}")
......@@ -134,6 +134,9 @@ if(NOT OTB_INSTALL_PACKAGE_DIR)
set(OTB_INSTALL_PACKAGE_DIR "${OTB_INSTALL_LIBRARY_DIR}/cmake/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}")
endif()
#convert path to native for reconfiguring otbcli.bat.in
file(TO_NATIVE_PATH "${OTB_INSTALL_APP_DIR}" OTB_INSTALL_APP_DIR_NATIVE)
# Override CMake's built-in add_* commands: assign LABELS to tests and targets
# automatically. Depends on the CMake variable otb-module being set to the
# "current" module when add_* is called.
......@@ -309,7 +312,12 @@ if(OTB_WRAP_PYTHON)
set(OTB_CONFIG_CODE "${OTB_CONFIG_CODE}
set(OTB_PYTHONPATH \"${OTB_BINARY_DIR}/${OTB_INSTALL_PYTHON_DIR}\")")
endif()
if(OTB_HAS_CXX11)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(OTB_REQUIRED_CXX_FLAGS " -std=c++11")
endif()
endif()
set(OTB_CONFIG_APPLICATION_PATH "${OTB_BINARY_DIR}/${OTB_INSTALL_APP_DIR}")
set(OTB_CONFIG_TARGETS_CONDITION " AND NOT OTB_BINARY_DIR")
set(OTB_CONFIG_TARGETS_FILE "${OTB_BINARY_DIR}/OTBTargets.cmake")
......
......@@ -93,17 +93,17 @@ A: This is due to a conflict with system Qt4 (usually seen on KDE) and Qt4 + gtk
Q: Monteverdi and Mapla applications look different from my other applications.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A: By default, Monteverdi, Mapla and otbapplication (otbgui\_\*) uses a default gtk theme (plastic)
which is distributed with the OTB package!. We do this to be on safe side, like when a user does
not have gtk libraries installed when using our package.
A: By default, Monteverdi, Mapla and otbapplication (otbgui\_\*) uses a the
system gtk theme. If you can't install GTK on your system you can use the
distributed with the OTB package. Note that using system GTK is the preferred
way with the OTB standalone package as the distributed version of GTK do not
work on recent Linux distributions.
gtk libraries in the package is the reason why you are getting a default "plastic" look & feel that
makes it look different from other GUI applications.
To get same look and feel, you can "force" Monteverdi and Mapla to use system GTK.
To use the distributed GTK libraries you need to set the OTB_USE_LOCAL_GTK:
::
export OTB_USE_SYSTEM_GTK=1
export OTB_USE_LOCAL_GTK=1
And now start ``monteverdi.sh`` or ``mapla.sh`` from OTB-|release|-Linux64
To get back default behaviour, unset OTB_USE_SYSTEM_GTK=1 or set OTB_USE_SYSTEM_GTK=0
To get back default behaviour, unset OTB_USE_LOCAL_GTK=1 or set OTB_USE_LOCAL_GTK=0
Synopsis
--------
This archive provides a development kit for the ORFEO ToolBox library which
allows to easily compile OTB and facilitate the creation of programs based on
OTB.
It contains shared libraries of OTB dependencies and helper scripts for the
configuration and the compilation of the library.
Note that OTB sources are not included in the archive (see instructions below).
Prerequisites
-------------
- cmake (>= 3.2)
- gcc (>= 4.9)
- git
Extract XDK
-----------
::
cd /opt (You can use another a directory of your own choice)
chmod +x OTB-|release|-xdk-Linux64.run
./OTB-|release|-xdk-Linux64.run
**You now will have a directory named **OTB-|release|-xdk-Linux64** in **/opt**
Setup environment
-----------------
There is a helper script in package called **xdkenv.profile**. This script export
required environments to configure and build OTB.
::
cd /opt/OTB-|release|-xdk-Linux64
. ./xdkenv.profile
Test environment setup by checking value of CMAKE_PREFIX_PATH
::
echo $CMAKE_PREFIX_PATH
The above command will output:
/opt/OTB-|release|-xdk-Linux64
Download, Configure and build OTB
---------------------------------
::
mkdir -p /opt/OTB/build && cd /opt/OTB
git clone --depth=1 --branch=develop https://git@git.orfeo-toolbox.org/git/otb.git source
cd build && cmake ../source
make -j2
Notes
~~~~~
By default, all OTB\_USE\_\* variables in OTB are set to FALSE except for 6S and SiftFast. You can check/activate them in your cmake-gui/ccmake.
......@@ -12,22 +12,19 @@ Monteverdi is a satellite image viewer. Its main features are:
- **Powerful**: Access to all processing application from OTB. Orthorectification,
optical calibration, classification, SAR processing, and much more!
GUI : what does it look like ?
------------------------------
.. image:: Art/MonteverdiImages/gui.png
This is Monteverdi’s main window where the different functionalities are reachable:
This is Monteverdi’s main window where the different functionalities are:
#. Main menu
#. Top toolbar
#. Image displaying
#. Image View
#. Right side dock
#. Widgets
#. Stack layer
#. Layer stack
Main menu
~~~~~~~~~
......@@ -92,9 +89,9 @@ In the image displaying part:
- CTRL+Mouse drag = Quick scroll view (rending is done after releasing
CTRL key)
- CTRL+Mouse wheel = Zoom in out
- Mouse wheel = Zoom
- + or - = Zoom in out
- + or - = Zoom
In the layer stack part:
......
......@@ -33,6 +33,7 @@ Julien Osman,
Julien Radoux (UCL),
Laurentiu Nicola (CS Romania),
Luc Hermitte (CS),
Ludovic Hussonnois (CS),
Manuel Grizonnet (CNES),
Massimo Di Stefano,
Mathieu Deltorre (CS),
......
......@@ -66,13 +66,18 @@ GetExistingDirectory( QWidget * p,
const QString& dir,
QFileDialog::Options options )
{
QString dialogCaption(caption.isEmpty()
? QObject::tr( "Select directory..." )
: caption);
QString dialogDir(dir.isEmpty()
? RecentDirectory
: dir);
QString path(
QFileDialog::getExistingDirectory(
p,
caption.isEmpty()
? QObject::tr( "Select directory..." )
: caption,
dir.isEmpty() ? RecentDirectory : dir,
dialogCaption,
dialogDir,
options
)
);
......@@ -95,13 +100,18 @@ GetOpenFileName( QWidget * p,
QString* selectedFilter,
QFileDialog::Options options )
{
QString dialogCaption(caption.isEmpty()
? QObject::tr( "Open file..." )
: caption);
QString dialogDir(dir.isEmpty()
? RecentDirectory
: dir);
QString filename(
QFileDialog::getOpenFileName(
p,
caption.isEmpty()
? QObject::tr( "Open file..." )
: caption,
dir.isEmpty() ? RecentDirectory : dir,
dialogCaption,
dialogDir,
filter,
selectedFilter,
options
......@@ -124,13 +134,18 @@ GetOpenFileNames( QWidget * p,
QString * selectedFilter,
QFileDialog::Options options )
{
QString dialogCaption(caption.isEmpty()
? QObject::tr( "Open file..." )
: caption);
QString dialogDir(dir.isEmpty()
? RecentDirectory
: dir);
QStringList filenames(
QFileDialog::getOpenFileNames(
p,
caption.isEmpty()
? QObject::tr( "Open file..." )
: caption,
dir.isEmpty() ? RecentDirectory : dir,
dialogCaption,
dialogDir,
filter,
selectedFilter,
options
......@@ -153,13 +168,18 @@ GetSaveFileName( QWidget * p,
QString * selectedFilter,
QFileDialog::Options options )
{
QString dialogCaption(caption.isEmpty()
? QObject::tr( "Save file..." )
: caption);
QString dialogDir(dir.isEmpty()
? RecentDirectory
: dir);
QString filename(
QFileDialog::getSaveFileName(
p,
caption.isEmpty()
? QObject::tr( "Save file..." )
: caption,
dir.isEmpty() ? RecentDirectory : dir,
dialogCaption,
dialogDir,
filter,
selectedFilter,
options
......
......@@ -140,12 +140,12 @@ private:
AddParameter(ParameterType_String, "cri", "Criterion");
SetParameterDescription("cri", "Dempster Shafer criterion (by default (belief+plausibility)/2)");
MandatoryOff("cri");
SetParameterString("cri","((Belief + Plausibility)/2.)");
SetParameterString("cri","((Belief + Plausibility)/2.)", false);
AddParameter(ParameterType_Float,"wgt","Weighting");
SetParameterDescription("wgt","Coefficient between 0 and 1 to promote undetection or false detections (default 0.5)");
MandatoryOff("wgt");
SetParameterFloat("wgt", 0.5);
SetParameterFloat("wgt",0.5, false);
AddParameter(ParameterType_InputFilename,"initmod","initialization model");
SetParameterDescription("initmod","Initialization model (xml file) to be used. If the xml initialization model is set, the descriptor list is not used (specified using the option -desclist)");
......@@ -154,12 +154,12 @@ private:
AddParameter(ParameterType_StringList, "desclist","Descriptor list");
SetParameterDescription("desclist","List of the descriptors to be used in the model (must be specified to perform an automatic initialization)");
MandatoryOff("desclist");
SetParameterString("desclist","");
SetParameterString("desclist","", false);
AddParameter(ParameterType_Int,"maxnbit","Maximum number of iterations");
MandatoryOff("maxnbit");
SetParameterDescription("maxnbit","Maximum number of optimizer iteration (default 200)");
SetParameterInt("maxnbit", 200);
SetParameterInt("maxnbit",200, false);
AddParameter(ParameterType_Empty,"optobs","Optimizer Observer");
SetParameterDescription("optobs","Activate the optimizer observer");
......
......@@ -245,7 +245,7 @@ private:
{
otbAppLogWARNING("The available RAM is too small to process this sample size of " << GetParameterInt("ts") <<
" pixels. The sample size will be reduced to " << maxPixNb << " pixels." << std::endl);
this->SetParameterInt("ts", maxPixNb);
this->SetParameterInt("ts",maxPixNb, false);
}
this->SetMaximumParameterIntValue("ts", maxPixNb);
......
......@@ -161,7 +161,7 @@ private:
SetParameterDescription("strategy.all","Take all samples");
// Default strategy : smallest
SetParameterString("strategy","smallest");
SetParameterString("strategy","smallest", false);
AddParameter(ParameterType_Choice, "mim", "Multi-Image Mode");
......
......@@ -78,7 +78,7 @@ private:
AddParameter(ParameterType_String,"cfield","Field containing the predicted class.");
SetParameterDescription("cfield","Field containing the predicted class");
SetParameterString("cfield","predicted");
SetParameterString("cfield","predicted", false);
// Doc example parameter settings
SetDocExampleParameterValue("inshp", "vectorData.shp");
......
......@@ -86,7 +86,7 @@ private:
AddParameter(ParameterType_String, "outfield.prefix.name", "Output field prefix");
SetParameterDescription("outfield.prefix.name","Prefix used to form the field names that"
"will contain the extracted values.");
SetParameterString("outfield.prefix.name", "value_");
SetParameterString("outfield.prefix.name", "value_", false);
AddChoice("outfield.list","Use the given name list");
SetParameterDescription("outfield.list","Use the given name list");
......
......@@ -197,7 +197,7 @@ private:
SetParameterDescription("strategy.all","Take all samples");
// Default strategy : smallest
SetParameterString("strategy","smallest");
SetParameterString("strategy","smallest", false);
AddParameter(ParameterType_ListView, "field", "Field Name");
SetParameterDescription("field","Name of the field carrying the class name in the input vectors.");
......
......@@ -155,7 +155,7 @@ void DoInit() ITK_OVERRIDE
SetParameterDescription("sample.vtr",
"Ratio between training and validation samples (0.0 = all training, 1.0 = "
"all validation) (default = 0.5).");
SetParameterFloat("sample.vtr", 0.5);
SetParameterFloat("sample.vtr",0.5, false);
SetMaximumParameterFloatValue("sample.vtr",1.0);
SetMinimumParameterFloatValue("sample.vtr",0.0);
......@@ -214,7 +214,7 @@ void DoUpdateParameters() ITK_OVERRIDE
if ( HasValue("io.vd") )
{
std::vector<std::string> vectorFileList = GetParameterStringList("io.vd");
GetInternalApplication("polystat")->SetParameterString("vec",vectorFileList[0]);
GetInternalApplication("polystat")->SetParameterString("vec",vectorFileList[0], false);
UpdateInternalParameters("polystat");
}
}
......@@ -289,21 +289,21 @@ void DoExecute() ITK_OVERRIDE
for (unsigned int i=0 ; i<nbInputs ; i++)
{
GetInternalApplication("polystat")->SetParameterInputImage("in",imageList->GetNthElement(i));
GetInternalApplication("polystat")->SetParameterString("vec",vectorFileList[i]);
GetInternalApplication("polystat")->SetParameterString("out",polyStatTrainOutputs[i]);
GetInternalApplication("polystat")->SetParameterString("vec",vectorFileList[i], false);
GetInternalApplication("polystat")->SetParameterString("out",polyStatTrainOutputs[i], false);
ExecuteInternal("polystat");
// analyse polygons given for validation
if (dedicatedValidation)
{
GetInternalApplication("polystat")->SetParameterString("vec",validationVectorFileList[i]);
GetInternalApplication("polystat")->SetParameterString("out",polyStatValidOutputs[i]);
GetInternalApplication("polystat")->SetParameterString("vec",validationVectorFileList[i], false);
GetInternalApplication("polystat")->SetParameterString("out",polyStatValidOutputs[i], false);
ExecuteInternal("polystat");
}
}
// ---------------------------------------------------------------------------
// Compute sampling rates
GetInternalApplication("rates")->SetParameterString("mim","proportional");
GetInternalApplication("rates")->SetParameterString("mim","proportional", false);
double vtr = GetParameterFloat("sample.vtr");
long mt = GetParameterInt("sample.mt");
long mv = GetParameterInt("sample.mv");
......@@ -348,44 +348,44 @@ void DoExecute() ITK_OVERRIDE
}
// Sampling rates for training
GetInternalApplication("rates")->SetParameterStringList("il",polyStatTrainOutputs);
GetInternalApplication("rates")->SetParameterString("out",rateTrainOut);
GetInternalApplication("rates")->SetParameterStringList("il",polyStatTrainOutputs, false);
GetInternalApplication("rates")->SetParameterString("out",rateTrainOut, false);
if (GetParameterInt("sample.bm") != 0)
{
GetInternalApplication("rates")->SetParameterString("strategy","smallest");
GetInternalApplication("rates")->SetParameterString("strategy","smallest", false);
}
else
{
if (fmt > -1)
{
GetInternalApplication("rates")->SetParameterString("strategy","constant");
GetInternalApplication("rates")->SetParameterString("strategy","constant", false);
GetInternalApplication("rates")->SetParameterInt("strategy.constant.nb",fmt);
}
else
{
GetInternalApplication("rates")->SetParameterString("strategy","all");
GetInternalApplication("rates")->SetParameterString("strategy","all", false);
}
}
ExecuteInternal("rates");
// Sampling rates for validation
if (dedicatedValidation)
{
GetInternalApplication("rates")->SetParameterStringList("il",polyStatValidOutputs);
GetInternalApplication("rates")->SetParameterString("out",rateValidOut);
GetInternalApplication("rates")->SetParameterStringList("il",polyStatValidOutputs, false);
GetInternalApplication("rates")->SetParameterString("out",rateValidOut, false);
if (GetParameterInt("sample.bm") != 0)
{
GetInternalApplication("rates")->SetParameterString("strategy","smallest");
GetInternalApplication("rates")->SetParameterString("strategy","smallest", false);
}
else
{
if (fmv > -1)
{
GetInternalApplication("rates")->SetParameterString("strategy","constant");
GetInternalApplication("rates")->SetParameterString("strategy","constant", false);
GetInternalApplication("rates")->SetParameterInt("strategy.constant.nb",fmv);
}
else
{
GetInternalApplication("rates")->SetParameterString("strategy","all");
GetInternalApplication("rates")->SetParameterString("strategy","all", false);
}
}
ExecuteInternal("rates");
......@@ -393,18 +393,18 @@ void DoExecute() ITK_OVERRIDE
// ---------------------------------------------------------------------------
// Select & extract samples
GetInternalApplication("select")->SetParameterString("sampler", "periodic");
GetInternalApplication("select")->SetParameterString("sampler", "periodic", false);
GetInternalApplication("select")->SetParameterInt("sampler.periodic.jitter",50);
GetInternalApplication("select")->SetParameterString("strategy","byclass");
GetInternalApplication("extraction")->SetParameterString("outfield", "prefix");
GetInternalApplication("extraction")->SetParameterString("outfield.prefix.name","value_");
GetInternalApplication("select")->SetParameterString("strategy","byclass", false);
GetInternalApplication("extraction")->SetParameterString("outfield", "prefix", false);
GetInternalApplication("extraction")->SetParameterString("outfield.prefix.name","value_", false);
for (unsigned int i=0 ; i<nbInputs ; i++)
{
GetInternalApplication("select")->SetParameterInputImage("in",imageList->GetNthElement(i));
GetInternalApplication("select")->SetParameterString("vec",vectorFileList[i]);
GetInternalApplication("select")->SetParameterString("out",sampleOutputs[i]);
GetInternalApplication("select")->SetParameterString("instats",polyStatTrainOutputs[i]);
GetInternalApplication("select")->SetParameterString("strategy.byclass.in",ratesTrainOutputs[i]);
GetInternalApplication("select")->SetParameterString("vec",vectorFileList[i], false);
GetInternalApplication("select")->SetParameterString("out",sampleOutputs[i], false);
GetInternalApplication("select")->SetParameterString("instats",polyStatTrainOutputs[i], false);
GetInternalApplication("select")->SetParameterString("strategy.byclass.in",ratesTrainOutputs[i], false);
// select sample positions
ExecuteInternal("select");
// extract sample descriptors
......@@ -412,10 +412,10 @@ void DoExecute() ITK_OVERRIDE
if (dedicatedValidation)
{
GetInternalApplication("select")->SetParameterString("vec",validationVectorFileList[i]);
GetInternalApplication("select")->SetParameterString("out",sampleValidOutputs[i]);
GetInternalApplication("select")->SetParameterString("instats",polyStatValidOutputs[i]);
GetInternalApplication("select")->SetParameterString("strategy.byclass.in",ratesValidOutputs[i]);
GetInternalApplication("select")->SetParameterString("vec",validationVectorFileList[i], false);
GetInternalApplication("select")->SetParameterString("out",sampleValidOutputs[i], false);
GetInternalApplication("select")->SetParameterString("instats",polyStatValidOutputs[i], false);
GetInternalApplication("select")->SetParameterString("strategy.byclass.in",ratesValidOutputs[i], false);
// select sample positions
ExecuteInternal("select");
// extract sample descriptors
......@@ -473,8 +473,8 @@ void DoExecute() ITK_OVERRIDE
// ---------------------------------------------------------------------------
// Train model
GetInternalApplication("training")->SetParameterStringList("io.vd",sampleTrainOutputs);
GetInternalApplication("training")->SetParameterStringList("valid.vd",sampleValidOutputs);
GetInternalApplication("training")->SetParameterStringList("io.vd",sampleTrainOutputs, false);
GetInternalApplication("training")->SetParameterStringList("valid.vd",sampleValidOutputs, false);
UpdateInternalParameters("training");
// set field names
FloatVectorImageType::Pointer image = imageList->GetNthElement(0);
......@@ -486,7 +486,7 @@ void DoExecute() ITK_OVERRIDE
oss << i;
selectedNames.push_back("value_"+oss.str());
}
GetInternalApplication("training")->SetParameterStringList("feat",selectedNames);
GetInternalApplication("training")->SetParameterStringList("feat",selectedNames, false);
ExecuteInternal("training");
// cleanup
......
......@@ -80,7 +80,7 @@ private:
AddParameter(ParameterType_String,"cfield","Field containing the class id for supervision");
SetParameterDescription("cfield","Field containing the class id for supervision. Only geometries with this field available will be taken into account.");
SetParameterString("cfield","class");
SetParameterString("cfield","class", false);
// Doc example parameter settings
SetDocExampleParameterValue("inshp", "vectorData.shp");
......
......@@ -159,7 +159,7 @@ void DoInit() ITK_OVERRIDE
AddParameter(ParameterType_Float, "sample.vtr", "Training and validation sample ratio");
SetParameterDescription("sample.vtr",
"Ratio between training and validation samples (0.0 = all training, 1.0 = all validation) (default = 0.5).");
SetParameterFloat("sample.vtr", 0.5);
SetParameterFloat("sample.vtr",0.5, false);
Superclass::DoInit();
......
......@@ -84,12 +84,12 @@ private:
AddParameter(ParameterType_String, "cri", "Criterion");
SetParameterDescription("cri", "Dempster Shafer criterion (by default (belief+plausibility)/2)");
MandatoryOff("cri");
SetParameterString("cri", "((Belief + Plausibility)/2.)");
SetParameterString("cri", "((Belief + Plausibility)/2.)", false);
AddParameter(ParameterType_Float, "thd", "Criterion threshold");
SetParameterDescription("thd", "Criterion threshold (default 0.5)");
MandatoryOff("thd");
SetParameterFloat("thd", 0.5);
SetParameterFloat("thd",0.5, false);
AddParameter(ParameterType_OutputVectorData, "out", "Output Vector Data");
SetParameterDescription("out", "Output VectorData containing only the validated samples");
......
......@@ -39,22 +39,22 @@ namespace Wrapper
AddChoice("classifier.boost.t.logit", "LogitBoost (technique producing good regression fits)");
AddChoice("classifier.boost.t.gentle", "Gentle AdaBoost (technique setting less weight on outlier data points "
"and, for that reason, being often good with regression data)");
SetParameterString("classifier.boost.t", "real");
SetParameterString("classifier.boost.t", "real", false);
SetParameterDescription("classifier.boost.t", "Type of Boosting algorithm.");
//Do not expose SplitCriteria
//WeakCount
AddParameter(ParameterType_Int, "classifier.boost.w", "Weak count");
SetParameterInt("classifier.boost.w", 100);
SetParameterInt("classifier.boost.w",100, false);
SetParameterDescription("classifier.boost.w","The number of weak classifiers.");
//WeightTrimRate
AddParameter(ParameterType_Float, "classifier.boost.r", "Weight Trim Rate");
SetParameterFloat("classifier.boost.r", 0.95);
SetParameterFloat("classifier.boost.r",0.95, false);
SetParameterDescription("classifier.boost.r","A threshold between 0 and 1 used to save computational time. "
"Samples with summary weight <= (1 - weight_trim_rate) do not participate in the next iteration of training. "
"Set this parameter to 0 to turn off this functionality.");
//MaxDepth : Not sure that this parameter has to be exposed.
AddParameter(ParameterType_Int, "classifier.boost.m", "Maximum depth of the tree");
SetParameterInt("classifier.boost.m", 1);
SetParameterInt("classifier.boost.m",1, false);
SetParameterDescription("classifier.boost.m","Maximum depth of the tree.");
}
......
......@@ -34,7 +34,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
"See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/decision_trees.html}.");
//MaxDepth
AddParameter(ParameterType_Int, "classifier.dt.max", "Maximum depth of the tree");
SetParameterInt("classifier.dt.max", 65535);
SetParameterInt("classifier.dt.max",65535, false);
SetParameterDescription(
"classifier.dt.max", "The training algorithm attempts to split each node while its depth is smaller than the maximum "
"possible depth of the tree. The actual depth may be smaller if the other termination criteria are met, and/or "
......@@ -42,13 +42,13 @@ LearningApplicationBase<TInputValue,TOutputValue>
//MinSampleCount
AddParameter(ParameterType_Int, "classifier.dt.min", "Minimum number of samples in each node");
SetParameterInt("classifier.dt.min", 10);
SetParameterInt("classifier.dt.min",10, false);
SetParameterDescription("classifier.dt.min", "If the number of samples in a node is smaller than this parameter, "
"then this node will not be split.");
//RegressionAccuracy
AddParameter(ParameterType_Float, "classifier.dt.ra", "Termination criteria for regression tree");
SetParameterFloat("classifier.dt.ra", 0.01);
SetParameterFloat("classifier.dt.ra",0.01, false);
SetParameterDescription("classifier.dt.min", "If all absolute differences between an estimated value in a node "
"and the values of the train samples in this node are smaller than this regression accuracy parameter, "
"then the node will not be split.");
......@@ -60,14 +60,14 @@ LearningApplicationBase<TInputValue,TOutputValue>
//MaxCategories
AddParameter(ParameterType_Int, "classifier.dt.cat",
"Cluster possible values of a categorical variable into K <= cat clusters to find a suboptimal split");