Commit d9f297ee authored by Guillaume Pasero's avatar Guillaume Pasero
Browse files

Synchro develop with release-5.4

parents 9cc5172c 4aab2ec2
......@@ -19,21 +19,21 @@
#=============================================================================
# Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
# All rights reserved.
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
#
# * Neither the names of Kitware, Inc., the Insight Software Consortium, nor
# the names of their contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
......@@ -51,8 +51,6 @@
find_path ( LIBSVM_INCLUDE_DIR
NAMES
svm.h
PATHS
${LIBSVM_ROOT_DIR}/include
PATH_SUFFIXES
libsvm
libsvm-2.0/libsvm
......@@ -96,9 +94,8 @@ endif ()
# set LIBSVM_LIBRARY
find_library ( LIBSVM_LIBRARY
NAMES
svm
PATHS
${LIBSVM_ROOT_DIR}/lib
svm
libsvm
DOC
"LibSVM library location"
)
......
......@@ -20,6 +20,8 @@ if exist %CURRENT_SCRIPT_DIR%../@OTB_INSTALL_APP_DIR@ (
set OTB_APPLICATION_PATH=%CURRENT_SCRIPT_DIR%../@OTB_INSTALL_APP_DIR@;%OTB_APPLICATION_PATH%
)
set LC_NUMERIC=C
:: start the application
%OTB_CLI_LAUNCHER% %*
endlocal
......@@ -25,5 +25,8 @@ fi
# export it to make it available to otbApplicationLauncherCommandLine environment
export OTB_APPLICATION_PATH
# avoid numerical issues caused by locale
export LC_NUMERIC=C
# start the application
$OTB_CLI_LAUNCHER "$@"
......@@ -32,6 +32,11 @@ include(CMakeDependentOption)
# use ExternalProject
include(ExternalProject)
#mantis: 1193
if(APPLE)
set(CMAKE_SYSTEM_FRAMEWORK_PATH "" CACHE PATH "" FORCE)
endif()
if( CMAKE_HOST_WIN32 )
string( LENGTH "${CMAKE_CURRENT_SOURCE_DIR}" n )
......@@ -358,63 +363,68 @@ endif()
# all tests have been added that reference the group, so we put it last.
if(WIN32 AND CMAKE_CROSSCOMPILING)
if(DEFINED MXE_TARGET_DIR)
set(pefiles)
message(STATUS "MXE_TARGET_DIR = ${MXE_TARGET_DIR}")
if(MXE_TARGET_DIR MATCHES "i686")
set(mxearch x86)
set(archive_name ${CMAKE_PROJECT_NAME}-${OTB_VERSION_STRING}-win32)
elseif(MXE_TARGET_DIR MATCHES "x86_64")
set(mxearch x64)
set(archive_name ${CMAKE_PROJECT_NAME}-${OTB_VERSION_STRING}-win64)
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_INSTALL_PREFIX}/${archive_name}")
get_filename_component(mxeroot ${MXE_TARGET_DIR} PATH)
get_filename_component(mxeroot ${mxeroot} PATH)
file(WRITE "${CMAKE_BINARY_DIR}/_mingw/CMakeLists.txt"
"cmake_minimum_required(VERSION 2.6)
include(CMakeParseArguments)
set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")
include(${CMAKE_SOURCE_DIR}/CMake/MinGWPackage.cmake)
package_mingw(
ARCH \"${mxearch}\"
MXEROOT \"${mxeroot}\"
PREFIX_DIR \"${archive_name}\"
PEFILES \"${pefiles}\"
WITH_OTBGUI 1
SEARCHDIRS \"\")")
add_custom_target(configure-mingw
COMMAND ${CMAKE_COMMAND}
"${CMAKE_BINARY_DIR}/_mingw"
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/_mingw")
add_custom_target(prepare-mingw
COMMAND ${CMAKE_COMMAND}
"--build" "${CMAKE_BINARY_DIR}/_mingw" "--target" "install"
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/_mingw"
DEPENDS configure-mingw)
find_program(ZIP_EXECUTABLE zip)
if(ZIP_EXECUTABLE)
add_custom_target(packages
COMMAND ${ZIP_EXECUTABLE} "-r" "${CMAKE_BINARY_DIR}/${archive_name}.zip" "${archive_name}"
WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}"
DEPENDS prepare-mingw)
else()
message(FATAL_ERROR "Cannot find zip executable. Please add it to your path")
endif()
# else(DEFINED MXE_TARGET_DIR)
# message(WARNING "MXE_TARGET_DIR must be defined and contains location of mxe root directory")
endif(DEFINED MXE_TARGET_DIR)
endif(WIN32 AND CMAKE_CROSSCOMPILING)
# 04-apr-2016. point OTB.
# create a single package with OTB + Monteverdi + Mapla.
# The below loop is commented out since generation of single
# package happens in monteverdi project.
# if(WIN32 AND CMAKE_CROSSCOMPILING)
# if(DEFINED MXE_TARGET_DIR)
# set(pefiles)
# message(STATUS "MXE_TARGET_DIR = ${MXE_TARGET_DIR}")
# if(MXE_TARGET_DIR MATCHES "i686")
# set(mxearch x86)
# set(archive_name ${CMAKE_PROJECT_NAME}-${OTB_VERSION_STRING}-win32)
# elseif(MXE_TARGET_DIR MATCHES "x86_64")
# set(mxearch x64)
# set(archive_name ${CMAKE_PROJECT_NAME}-${OTB_VERSION_STRING}-win64)
# endif()
# execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_INSTALL_PREFIX}/${archive_name}")
# get_filename_component(mxeroot ${MXE_TARGET_DIR} PATH)
# get_filename_component(mxeroot ${mxeroot} PATH)
# file(WRITE "${CMAKE_BINARY_DIR}/_mingw/CMakeLists.txt"
# "cmake_minimum_required(VERSION 2.6)
# include(CMakeParseArguments)
# set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")
# include(${CMAKE_SOURCE_DIR}/CMake/MinGWPackage.cmake)
# package_mingw(
# ARCH \"${mxearch}\"
# MXEROOT \"${mxeroot}\"
# PREFIX_DIR \"${archive_name}\"
# PEFILES \"${pefiles}\"
# WITH_OTBGUI 1
# SEARCHDIRS \"\")")
# add_custom_target(configure-mingw
# COMMAND ${CMAKE_COMMAND}
# "${CMAKE_BINARY_DIR}/_mingw"
# WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/_mingw")
# add_custom_target(prepare-mingw
# COMMAND ${CMAKE_COMMAND}
# "--build" "${CMAKE_BINARY_DIR}/_mingw" "--target" "install"
# WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/_mingw"
# DEPENDS configure-mingw)
# find_program(ZIP_EXECUTABLE zip)
# if(ZIP_EXECUTABLE)
# add_custom_target(packages
# COMMAND ${ZIP_EXECUTABLE} "-r" "${CMAKE_BINARY_DIR}/${archive_name}.zip" "${archive_name}"
# WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}"
# DEPENDS prepare-mingw)
# else()
# message(FATAL_ERROR "Cannot find zip executable. Please add it to your path")
# endif()
# # else(DEFINED MXE_TARGET_DIR)
# # message(WARNING "MXE_TARGET_DIR must be defined and contains location of mxe root directory")
# endif(DEFINED MXE_TARGET_DIR)
# endif(WIN32 AND CMAKE_CROSSCOMPILING)
Copyright (c) 2002-2006 Marcus Geelnard
Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would
be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
......@@ -44,6 +44,13 @@ $ make
$ make install
\end{verbatim}
Remember to set the \texttt{OTB\_APPLICATION\_PATH} environment variable to
allow monteverdi to find the OTB applications:
\begin{verbatim}
export OTB_APPLICATION_PATH=~/OTB/build/lib/otb/applications
./bin/monteverdi
\end{verbatim}
\section{Windows}
Everything that is needed for Monteverdi development on Windows, including compiling from source, is covered in details on the OTB wiki at:
......
......@@ -7,7 +7,6 @@
There are two ways to install OTB library on your system: installing from a binary distribution or compiling from sources.
You can find information about the installation of binary packages for OTB and Monteverdi in the OTB-Cookbook.
This chapter covers compilation of OTB library from source.
Because Monteverdi is a separate project, compiling it from source will be covered in the next chapter.
OTB has been developed and tested across different combinations of operating systems, compilers, and hardware platforms including MS-Windows, Linux on Intel-compatible hardware and Mac OSX. It is known to work with the following compilers in 32/64 bit:
\begin{itemize}
......@@ -214,12 +213,17 @@ The most important configuration variables are shown in table~\ref{tab:installat
The simplest way to provide configuration variables is via the command line \texttt{-D} option:
\begin{verbatim}
$ cd ~/OTB/build
$ cmake -D CMAKE_INSTALL_LOCATION=~/OTB/install ../otb/SuperBuild
$ cmake -D CMAKE_INSTALL_PREFIX=~/OTB/install ../otb/SuperBuild
\end{verbatim}
A pre-load script can also be used with the \texttt{-C} options (see
\url{https://cmake.org/cmake/help/v3.4/manual/cmake.1.html#options}).
Another option is to set variables manually with \texttt{cmake-gui} or \texttt{ccmake}.
Please note that the \texttt{CMAKE\_INSTALL\_PREFIX} variable is important
because the SuperBuild will install some targets during the compilation step.
Therefore this directory will be used even if you don't use make install target.
In fact there is no make install target for the SuperBuild.
During the configuration step, the SuperBuild will detect any existing dependencies installed as systems libraries.
Whether to use them can be controlled via the \texttt{USE\_SYSTEM\_\textit{XXX}} (see
table~\ref{tab:installation-cmake-variables}).
......@@ -240,6 +244,30 @@ $ cd ~/OTB/build
$ make
\end{verbatim}
Applications will be located in the \texttt{bin/} directory, for example:
\begin{verbatim}
./OTB/build/bin/otbcli_ExtractROI
\end{verbatim}
will launch the command line version of the \textbf{ExtractROI} application,
while:
\begin{verbatim}
./OTB/build/bin/otbgui_ExtractROI
\end{verbatim}
will launch the graphical version.
We recommend adding OTB build directory to your PATH for easy access:
\begin{verbatim}
export PATH=$PATH:~/OTB/build/OTB/build/bin
\end{verbatim}
Monteverdi is also compiled by the SuperBuild (as long as you activate it with
ENABLE\_MONTEVERDI). To use OTB applications from within Monteverdi you will need
to define the OTB\_APPLICATION\_PATH environment variable.
\begin{verbatim}
export OTB_APPLICATION_PATH=~/OTB/build/OTB/build/lib/otb/applications
monteverdi
\end{verbatim}
A wiki page detailing the status of SuperBuild on various platforms is also available here:
\url{http://wiki.orfeo-toolbox.org/index.php/SuperBuild}.
......
......@@ -110,12 +110,16 @@ These last two options need a proper \href{https://git-scm.com/}{Git} installati
git clone https://git@git.orfeo-toolbox.org/git/otb.git
\end{verbatim}
Using Git, you can easily navigate through the different versions. For instance, this brings you to the stable branch for version 5.2:
Using Git, you can easily navigate through the different versions. The master
branch contains the latest stable version:
\begin{verbatim}
git checkout release-5.2
git checkout master
\end{verbatim}
And this brings you to the latest development version:
Specific versions are availables with tags:
\begin{verbatim}
git checkout 5.2.0
\end{verbatim}
Finally, this brings you to the latest development version:
\begin{verbatim}
git checkout develop
\end{verbatim}
......
......@@ -373,9 +373,6 @@ ortho-rectification framework. An example is given in the next section.
\input{GeometriesProjectionExample.tex}
\section{Elevation management with OTB}
\ifitkFullVersion
\label{sec:DEMHandler}
\fi
\input{DEMHandlerExample.tex}
\section{Vector data area extraction}
......
......@@ -190,12 +190,12 @@ images is the processing of SLC SAR images, which are complex.
%\input{CovariantVectorImageExtractComponent.tex}
\section{Reading Image Series}
\label{sec:Reading Image Series}
\label{sec:ReadingImageSeries}
\input{ImageSeriesIOExample}
\section{Extended filename for reader and writer}
\label{sec:Reading Image Series}
\label{sec:ExtendedFilename}
\subsection{Purpose}
......
......@@ -14,7 +14,7 @@ The following sections give precise instructions about :
\label{sec:writemodule}
There is a template of OTB remote module which help you start developing you're
remote module: \href{https://github.com/orfeotoolbox/otbExternalModuleTemplate}
remote module: \href{https://github.com/orfeotoolbox/otbExternalModuleTemplate}{External Module Template}
Each module is made of different components, which are described in the following sections.
......@@ -247,7 +247,7 @@ otb_add_test(NAME nameOfTheTest COMMAND otbTheModuleNameTestDriver
Your remote module can be build inside the OTB source tree or outside as a
external CMake project with an existing build of OTB. Please note in that case
that you'll have to set OTB\textunderscoreDIR CMake option to the directory which contain
that you'll have to set OTB\textunderscore DIR CMake option to the directory which contain
existing OTB build (Note that this cannot be used for building against an OTB install
tree).
......
......@@ -21,6 +21,7 @@
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wshadow"
#include <boost/math/distributions/normal.hpp>
#pragma GCC diagnostic pop
#else
......
......@@ -22,10 +22,20 @@
#include <string>
// to implement copy_const
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#include <boost/mpl/if.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/noncopyable.hpp>
#pragma GCC diagnostic pop
#else
#include <boost/mpl/if.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/noncopyable.hpp>
#endif
#include "itkDataObject.h"
#include "itkMacro.h" // itkNewMacro
......@@ -531,7 +541,7 @@ private:
/** Get a string describing the dataset */
std::string GetDatasetDescription() const;
private:
ogr::version_proxy::GDALDatasetType *m_DataSource;
Modes::type m_OpenMode;
......
......@@ -19,7 +19,14 @@
#define __otbOGRFeatureWrapper_h
// #include <iosfwd> // std::ostream&
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#include <boost/shared_ptr.hpp>
#pragma GCC diagnostic pop
#else
#include <boost/shared_ptr.hpp>
#endif
// #include "itkIndent.h", included from field
#include "otbOGRFieldWrapper.h"
#include "otbOGRGeometryWrapper.h"
......
......@@ -18,7 +18,15 @@
#ifndef __otbOGRGeometryWrapper_h
#define __otbOGRGeometryWrapper_h
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#include <boost/interprocess/smart_ptr/unique_ptr.hpp>
#pragma GCC diagnostic pop
#else
#include <boost/interprocess/smart_ptr/unique_ptr.hpp>
#endif
class OGRGeometry;
namespace otb { namespace ogr {
......
......@@ -19,9 +19,18 @@ PURPOSE. See the above copyright notices for more information.
#define __otbOGRLayerWrapper_h
// #include <iosfwd> // std::ostream&
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#include <boost/shared_ptr.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/utility/enable_if.hpp>
#pragma GCC diagnostic pop
#else
#include <boost/shared_ptr.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/utility/enable_if.hpp>
#endif
// #include "itkIndent.h", included from field
#include "otbOGRFeatureWrapper.h"
#include "otbOGRVersionProxy.h"
......
......@@ -245,16 +245,6 @@ private:
MapOfClassesType::iterator itMapOfClassesRef, itMapOfClassesProd;
/*for (itMapOfClassesRef = mapOfClassesRefClX.begin(); itMapOfClassesRef != mapOfClassesRefClX.end(); ++itMapOfClassesRef)
{
std::cout << "mapOfClassesRefClX[" << itMapOfClassesRef->first << "] = " << itMapOfClassesRef->second << std::endl;
}
std::cout << std::endl;
for (itMapOfClassesProd = mapOfClassesProdClX.begin(); itMapOfClassesProd != mapOfClassesProdClX.end(); ++itMapOfClassesProd)
{
std::cout << "mapOfClassesProdClX[" << itMapOfClassesProd->first << "] = " << itMapOfClassesProd->second << std::endl;
}*/
// Formatting confusionMatrixClX from confusionMatrixClXTemp in order to make confusionMatrixClX a square matrix
// from the reference labels in mapOfClassesRefClX
int indiceLabelRef = 0, indiceLabelProd = 0;
......@@ -284,9 +274,6 @@ private:
}
++indiceLabelRef;
}
//std::cout << "confusionMatrixClXTemp:" << std::endl << confusionMatrixClXTemp << std::endl << std::endl;
//std::cout << "confusionMatrixClX:" << std::endl << confusionMatrixClX << std::endl;
}
inFile.close();
return EXIT_SUCCESS;
......
......@@ -277,7 +277,6 @@ void LogConfusionMatrix(ConfusionMatrixCalculatorType* confMatCalc)
void DoExecute()
{
GetLogger()->Debug("Entering DoExecute\n");
//Create training and validation for list samples and label list samples
ConcatenateLabelListSampleFilterType::Pointer concatenateTrainingLabels =
ConcatenateLabelListSampleFilterType::New();
......@@ -289,6 +288,9 @@ void DoExecute()
SampleType meanMeasurementVector;
SampleType stddevMeasurementVector;
// Setup the DEM Handler
otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this, "elev");
//--------------------------
// Load measurements from images
unsigned int nbBands = 0;
......@@ -302,6 +304,10 @@ void DoExecute()
//Iterate over all input images
for (unsigned int imgIndex = 0; imgIndex < imageList->Size(); ++imgIndex)
{
std::ostringstream oss1, oss2;
oss1 << "Reproject polygons for image " << (imgIndex+1) << " ...";
oss2 << "Extract samples from image " << (imgIndex+1) << " ...";
FloatVectorImageType::Pointer image = imageList->GetNthElement(imgIndex);
image->UpdateOutputInformation();
......@@ -311,16 +317,11 @@ void DoExecute()
}
// read the Vectordata
VectorDataType::Pointer vectorData = vectorDataList->GetNthElement(imgIndex);
vectorData->Update();
vdreproj->SetInputImage(image);
vdreproj->SetInput(vectorData);
vdreproj->SetInput(vectorDataList->GetNthElement(imgIndex));
vdreproj->SetUseOutputSpacingAndOriginFromImage(false);
// Setup the DEM Handler
otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this, "elev");
AddProcess(vdreproj, oss1.str());
vdreproj->Update();
//Sample list generator
......@@ -341,15 +342,27 @@ void DoExecute()
sampleGenerator->SetPolygonEdgeInclusion(true);
}
AddProcess(sampleGenerator, oss2.str());
sampleGenerator->Update();
TargetListSampleType::Pointer trainLabels = sampleGenerator->GetTrainingListLabel();
ListSampleType::Pointer trainSamples = sampleGenerator->GetTrainingListSample();
TargetListSampleType::Pointer validLabels = sampleGenerator->GetValidationListLabel();
ListSampleType::Pointer validSamples = sampleGenerator->GetValidationListSample();
trainLabels->DisconnectPipeline();
trainSamples->DisconnectPipeline();
validLabels->DisconnectPipeline();
validSamples->DisconnectPipeline();
//Concatenate training and validation samples from the image
concatenateTrainingLabels->AddInput(sampleGenerator->GetTrainingListLabel());
concatenateTrainingSamples->AddInput(sampleGenerator->GetTrainingListSample());
concatenateValidationLabels->AddInput(sampleGenerator->GetValidationListLabel());
concatenateValidationSamples->AddInput(sampleGenerator->GetValidationListSample());
concatenateTrainingLabels->AddInput(trainLabels);
concatenateTrainingSamples->AddInput(trainSamples);
concatenateValidationLabels->AddInput(validLabels);
concatenateValidationSamples->AddInput(validSamples);
}
// Update
AddProcess(concatenateValidationLabels, "Concatenate samples ...");
concatenateTrainingSamples->Update();
concatenateTrainingLabels->Update();
concatenateValidationSamples->Update();
......@@ -385,6 +398,7 @@ void DoExecute()
trainingShiftScaleFilter->SetInput(concatenateTrainingSamples->GetOutput());
trainingShiftScaleFilter->SetShifts(meanMeasurementVector);
trainingShiftScaleFilter->SetScales(stddevMeasurementVector);
AddProcess(trainingShiftScaleFilter, "Normalize training samples ...");
trainingShiftScaleFilter->Update();
ListSampleType::Pointer validationListSample=ListSampleType::New();
......@@ -396,6 +410,7 @@ void DoExecute()
validationShiftScaleFilter->SetInput(concatenateValidationSamples->GetOutput());
validationShiftScaleFilter->SetShifts(meanMeasurementVector);
validationShiftScaleFilter->SetScales(stddevMeasurementVector);
AddProcess(validationShiftScaleFilter, "Normalize validation samples ...");
validationShiftScaleFilter->Update();
validationListSample = validationShiftScaleFilter->GetOutput();
}
......@@ -464,11 +479,10 @@ void DoExecute()
ConfusionMatrixCalculatorType::Pointer confMatCalc = ConfusionMatrixCalculatorType::New();
std::cout << "predicted list size == " << predictedList->Size() << std::endl;
std::cout << "validationLabeledListSample size == " << performanceLabeledListSample->Size() << std::endl;
otbAppLogINFO("Predicted list size : " << predictedList->Size());
otbAppLogINFO("ValidationLabeledListSample size : " << performanceLabeledListSample->Size());
confMatCalc->SetReferenceLabels(performanceLabeledListSample);
confMatCalc->SetProducedLabels(predictedList);
confMatCalc->Compute();
otbAppLogINFO("training performances");
......
......@@ -18,6 +18,8 @@
#define __otbLearningApplicationBase_txx
#include "otbLearningApplicationBase.h"
// only need this filter as a dummy process object
#include "otbRGBAPixelConverter.h"
namespace otb
{
......@@ -73,6 +75,13 @@ LearningApplicationBase<TInputValue,TOutputValue>
typename TargetListSampleType::Pointer predictedList,
std::string modelPath)
{
//