Commit d7087ef3 authored by Antoine Regimbeau's avatar Antoine Regimbeau

Merge branch 'develop' into 1506-refactor-MapProjectionAdapter

parents 1d4f8668 8a7a9329
Pipeline #298 passed with stage
in 23 minutes and 13 seconds
......@@ -65,25 +65,25 @@ OTB_DATA_LARGEINPUT_ROOT:PATH=${OTB_LARGEINPUT_ROOT}")
set (cmake_configure_option
"CMAKE_BUILD_TYPE=${CTEST_BUILD_CONFIGURATION}
CMAKE_INSTALL_PREFIX:PATH=${CTEST_INSTALL_DIRECTORY}
CMAKE_C_FLAGS:STRING=-fPIC -Wall -Wextra
CMAKE_CXX_FLAGS:STRING=-fPIC -Wall -Wextra -Wno-cpp")
CMAKE_INSTALL_PREFIX:PATH=${CTEST_INSTALL_DIRECTORY}")
#Transform the previous string in list
string (REPLACE "\n" ";" otb_build_project_option ${otb_build_project_option})
string (REPLACE "\n" ";" otb_use_option ${otb_use_option})
string (REPLACE "\n" ";" otb_wrap_option ${otb_wrap_option})
string (REPLACE "\n" ";" otb_data_option ${otb_data_option})
if((CTEST_SITE) AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/${CTEST_SITE}.cmake")
# will set its output in 'site_option'
include("${CMAKE_CURRENT_LIST_DIR}/${CTEST_SITE}.cmake")
endif()
set (otb_options "")
list (APPEND otb_options ${otb_build_project_option})
list (APPEND otb_options ${otb_use_option})
list (APPEND otb_options ${otb_wrap_option})
list (APPEND otb_options ${otb_data_option})
set(concat_options
"${otb_build_project_option}
${otb_use_option}
${otb_wrap_option}
${otb_data_option}
${cmake_configure_option}
${site_option}
")
foreach(option ${otb_options})
set( CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS}-D${option};")
endforeach(option)
#Transform the previous string in list
string (REPLACE "\n" ";" otb_options ${concat_options})
# This should be removed as soon as possible
set( CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS}-Dopencv_INCLUDE_DIR:PATH=/usr/include;")
foreach(item ${otb_options})
set( CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS}-D${item};")
endforeach(item)
......@@ -24,7 +24,7 @@ set (ENV{LANG} "C") # Only ascii output
# Build Configuration : Release, Debug..
set (CTEST_BUILD_CONFIGURATION "Release")
set (CTEST_CMAKE_GENERATOR "Unix Makefiles")
set (CTEST_CMAKE_GENERATOR "Ninja")
set (CTEST_BUILD_NAME "$ENV{CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}_to_$ENV{CI_MERGE_REQUEST_TARGET_BRANCH_NAME}")
set (CTEST_SITE "${IMAGE_NAME}")
......@@ -37,10 +37,6 @@ set (PROJECT_SOURCE_DIR "${OTB_SOURCE_DIR}")
# Ctest command value
set (CMAKE_COMMAND "cmake")
set (CTEST_BUILD_FLAGS "-j8") # number of thread used for compilation
set (CTEST_BUILD_COMMAND "make ${CTEST_BUILD_FLAGS}")
# Data directory setting
set (OTB_DATA_ROOT "${OTB_SOURCE_DIR}/otb-data/") # todo
......@@ -60,23 +56,24 @@ ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}"
SOURCE "${OTB_SOURCE_DIR}"
OPTIONS "${CONFIGURE_OPTIONS}"
RETURN_VALUE _configure_rv
CAPTURE_CMAKE_ERROR _configure_error)
CAPTURE_CMAKE_ERROR _configure_error
)
if ( _configure_rv EQUAL -1 )
message("An error occurs during ctest_configure:
${_configure_error}")
if ( NOT _configure_rv EQUAL 0 )
ctest_submit()
message( FATAL_ERROR "An error occurs during ctest_configure.")
endif()
ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}"
RETURN_VALUE _build_rv]
CAPTURE_CMAKE_ERROR _build_error]
RETURN_VALUE _build_rv
CAPTURE_CMAKE_ERROR _build_error
)
if ( _configure_rv EQUAL -1 )
message("An error occurs during ctest_build:
${_build_error}")
if ( NOT _build_rv EQUAL 0 )
ctest_submit()
message( SEND_ERROR "An error occurs during ctest_build.")
endif()
# ctest_test(PARALLEL_LEVEL 8])
# ctest_test(PARALLEL_LEVEL 8)
ctest_submit()
\ No newline at end of file
ctest_submit()
......@@ -18,3 +18,7 @@
# limitations under the License.
#
# Configuration options for ubuntu-18.04-gcc-shark-3.1.4
set(site_option
"opencv_INCLUDE_DIR:PATH=/usr/include")
......@@ -18,6 +18,7 @@
# limitations under the License.
#
add_subdirectory(Containers)
add_subdirectory(Image)
# Configuration options for ubuntu-18.04-gcc
set(site_option
"opencv_INCLUDE_DIR:PATH=/usr/include")
......@@ -258,7 +258,6 @@ macro(otb_module_impl)
set(BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB/Files)
set(INPUTDATA ${OTB_DATA_ROOT}/Input)
set(TEMP ${CMAKE_BINARY_DIR}/Testing/Temporary)
set(EXAMPLEDATA ${OTB_DATA_ROOT}/Examples)
set(OTBAPP_BASELINE ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Images)
set(OTBAPP_BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Files)
......
......@@ -302,7 +302,6 @@ set(BASELINE ${OTB_DATA_ROOT}/Baseline/OTB/Images)
set(BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB/Files)
set(INPUTDATA ${OTB_DATA_ROOT}/Input)
set(TEMP ${OTB_BINARY_DIR}/Testing/Temporary)
set(EXAMPLEDATA ${OTB_DATA_ROOT}/Examples)
set(OTBAPP_BASELINE ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Images)
set(OTBAPP_BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Files)
......
......@@ -60,7 +60,7 @@ set(OTB_VERSION_STRING_FULL "${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}.${OTB_VER
FIND_PATH(OTB_DATA_ROOT README-OTB-Data PATHS $ENV{OTB_DATA_ROOT} ${OTB_SOURCE_DIR}/../OTB-Data)
# OTB_DATA_PATHS is searched recursively.. you need not enter sub-directories
SET(OTB_DATA_PATHS "${OTB_DATA_ROOT}/Examples::${OTB_DATA_ROOT}/Input" CACHE STRING "Where the OTB data is. Enter a double colon separated list.")
SET(OTB_DATA_PATHS "${OTB_DATA_ROOT}/Input" CACHE STRING "Where the OTB data is. Enter a double colon separated list.")
#
# Rebuild the Software Guide figures or not ?
......
......@@ -213,13 +213,13 @@ ADD_CUSTOM_TARGET(SoftwareGuideExamples ALL echo)
SET( OTB_EXAMPLES_SRCS
${OTB_SOURCE_DIR}/Examples/Application/ApplicationExample.cxx
${OTB_SOURCE_DIR}/Examples/Installation/HelloWorld.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/Image1.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/Image2.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/Image3.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/Image4.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/VectorImage.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/Image5.cxx
${OTB_SOURCE_DIR}/Examples/DataRepresentation/Image/ImageListExample.cxx
${OTB_SOURCE_DIR}/Examples/Image/Image1.cxx
${OTB_SOURCE_DIR}/Examples/Image/Image2.cxx
${OTB_SOURCE_DIR}/Examples/Image/Image3.cxx
${OTB_SOURCE_DIR}/Examples/Image/Image4.cxx
${OTB_SOURCE_DIR}/Examples/Image/VectorImage.cxx
${OTB_SOURCE_DIR}/Examples/Image/Image5.cxx
${OTB_SOURCE_DIR}/Examples/Image/ImageListExample.cxx
${OTB_SOURCE_DIR}/Examples/IO/ImageReadWrite.cxx
${OTB_SOURCE_DIR}/Examples/IO/ImageReadCastWrite.cxx
${OTB_SOURCE_DIR}/Examples/IO/ImageReadRegionOfInterestWrite.cxx
......
......@@ -20,7 +20,7 @@
otb_test_application(NAME apTeGenerateAnApplicationExample
APP ApplicationExample
OPTIONS -in ${OTB_DATA_ROOT}/Examples/QB_Suburb.png
OPTIONS -in ${OTB_DATA_ROOT}/Input/QB_Suburb.png
-out ${TEMP}/apTeGenerateAnApplicationExampleOutput.png uint8)
set_tests_properties(apTeGenerateAnApplicationExample PROPERTIES DEPENDS otbapp_ApplicationExample)
......@@ -22,17 +22,17 @@
// Software Guide : BeginCommandLineArgs
// OUTPUTS: {DEMToRainbowImageGenerator.png}
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Examples/DEM_srtm
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Input/DEM_srtm
// Software Guide : EndCommandLineArgs
// Software Guide : BeginCommandLineArgs
// OUTPUTS: {DEMToHotImageGenerator.png}
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Examples/DEM_srtm hot
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Input/DEM_srtm hot
// Software Guide : EndCommandLineArgs
// Software Guide : BeginCommandLineArgs
// OUTPUTS: {DEMToReliefImageGenerator.png}
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Examples/DEM_srtm relief
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Input/DEM_srtm relief
// Software Guide : EndCommandLineArgs
// Software Guide : BeginLatex
......
......@@ -22,7 +22,7 @@
// Software Guide : BeginCommandLineArgs
// OUTPUTS: {HillShadingExample.png}, {HillShadingColorExample.png}
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Examples/DEM_srtm
// 6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Input/DEM_srtm
// Software Guide : EndCommandLineArgs
// Software Guide : BeginLatex
......
......@@ -19,7 +19,7 @@
#
set(BASELINE ${OTB_DATA_ROOT}/Baseline/Examples/BasicFilters)
set(INPUTDATA ${OTB_DATA_ROOT}/Examples)
set(INPUTDATA ${OTB_DATA_ROOT}/Input)
otb_add_test(NAME bfTeLeeImageFilterTest COMMAND ${OTB_TEST_DRIVER}
--compare-n-images ${NOTOL} 1
......@@ -51,7 +51,7 @@ otb_add_test(NAME bfTeDEMToRainbowExampleTest COMMAND ${OTB_TEST_DRIVER}
${TEMP}/DEMToRainbowImageGenerator.png
Execute $<TARGET_FILE:DEMToRainbowExample>
${TEMP}/DEMToRainbowImageGenerator.png
6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Examples/DEM_srtm
6.5 45.5 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Input/DEM_srtm
)
......@@ -139,5 +139,5 @@ otb_add_test(NAME bfTeHillShadingExampleTest COMMAND ${OTB_TEST_DRIVER}
Execute $<TARGET_FILE:HillShadingExample>
${TEMP}/HillShadingExample.png
${TEMP}/HillShadingColorExample.png
6.8 45.3 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Examples/DEM_srtm
6.8 45.3 500 500 0.002 -0.002 ${OTB_DATA_ROOT}/Input/DEM_srtm
)
......@@ -89,7 +89,6 @@ if(PROJECT_NAME STREQUAL "OTBExamples")
set(BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB/Files)
set(INPUTDATA ${OTB_DATA_ROOT}/Input)
set(TEMP ${CMAKE_BINARY_DIR}/Testing/Temporary)
set(EXAMPLEDATA ${OTB_DATA_ROOT}/Examples)
set(OTBAPP_BASELINE ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Images)
set(OTBAPP_BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Files)
......@@ -163,7 +162,7 @@ endif()
add_subdirectory(BasicFilters)
add_subdirectory(ChangeDetection)
add_subdirectory(Classification)
add_subdirectory(DataRepresentation)
add_subdirectory(Image)
add_subdirectory(DimensionReduction)
add_subdirectory(DisparityMap)
add_subdirectory(FeatureExtraction)
......
......@@ -26,21 +26,12 @@ target_link_libraries(CorrelChDet ${OTB_LIBRARIES})
add_executable(DiffChDet DiffChDet.cxx)
target_link_libraries(DiffChDet ${OTB_LIBRARIES})
add_executable(JHMIChDet JHMIChDet.cxx)
target_link_libraries(JHMIChDet ${OTB_LIBRARIES})
add_executable(KullbackLeiblerDistanceChDet KullbackLeiblerDistanceChDet.cxx)
target_link_libraries(KullbackLeiblerDistanceChDet ${OTB_LIBRARIES})
add_executable(KullbackLeiblerProfileChDet KullbackLeiblerProfileChDet.cxx)
target_link_libraries(KullbackLeiblerProfileChDet ${OTB_LIBRARIES})
add_executable(KullbackLeiblerSupervizedDistanceChDet KullbackLeiblerSupervizedDistanceChDet.cxx)
target_link_libraries(KullbackLeiblerSupervizedDistanceChDet ${OTB_LIBRARIES})
add_executable(LHMIChDet LHMIChDet.cxx)
target_link_libraries(LHMIChDet ${OTB_LIBRARIES})
add_executable(MultivariateAlterationDetector MultivariateAlterationDetector.cxx)
target_link_libraries(MultivariateAlterationDetector ${OTB_LIBRARIES})
......
/*
* Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "otbImageFileReader.h"
#include "otbImageFileWriter.h"
#include "otbImage.h"
#include "itkShiftScaleImageFilter.h"
#include "otbJoinHistogramMIImageFilter.h"
#include "otbCommandProgressUpdate.h"
int main(int argc, char* argv[])
{
if (argc < 5)
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] <<
" inputImageFile1 inputImageFile2 radius outputImageFile " << std::endl;
return -1;
}
// Define the dimension of the images
const unsigned int Dimension = 2;
// Declare the types of the images
typedef float InternalPixelType;
typedef unsigned char OutputPixelType;
typedef otb::Image<InternalPixelType, Dimension> InputImageType1;
typedef otb::Image<InternalPixelType, Dimension> InputImageType2;
typedef otb::Image<InternalPixelType, Dimension> ChangeImageType;
typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
typedef otb::ImageFileReader<InputImageType1> ReaderType1;
typedef otb::ImageFileReader<InputImageType2> ReaderType2;
typedef otb::ImageFileWriter<OutputImageType> WriterType;
typedef itk::ShiftScaleImageFilter<ChangeImageType,
OutputImageType> RescalerType;
// Declare the type for the filter
typedef otb::JoinHistogramMIImageFilter<
InputImageType1,
InputImageType2,
ChangeImageType> FilterType;
ReaderType1::Pointer reader1 = ReaderType1::New();
ReaderType2::Pointer reader2 = ReaderType2::New();
WriterType::Pointer writer = WriterType::New();
FilterType::Pointer filter = FilterType::New();
RescalerType::Pointer rescaler = RescalerType::New();
const char * inputFilename1 = argv[1];
const char * inputFilename2 = argv[2];
const char * outputFilename = argv[4];
reader1->SetFileName(inputFilename1);
reader2->SetFileName(inputFilename2);
writer->SetFileName(outputFilename);
rescaler->SetShift(itk::NumericTraits<InternalPixelType>::min());
float scale = itk::NumericTraits<OutputPixelType>::max() / 100.0;
/*float(itk::NumericTraits< OutputPixelType >::max()+
itk::NumericTraits< InternalPixelType >::min()); */
rescaler->SetScale(scale);
filter->SetInput1(reader1->GetOutput());
filter->SetInput2(reader2->GetOutput());
filter->SetRadius(atoi(argv[3]));
rescaler->SetInput(filter->GetOutput());
writer->SetInput(rescaler->GetOutput());
typedef otb::CommandProgressUpdate<FilterType> CommandType;
CommandType::Pointer observer = CommandType::New();
filter->AddObserver(itk::ProgressEvent(), observer);
try
{
writer->Update();
}
catch (itk::ExceptionObject& err)
{
std::cout << "ExceptionObject caught !" << std::endl;
std::cout << err << std::endl;
return -1;
}
return EXIT_SUCCESS;
}
/*
* Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
* Copyright (C) 2007-2012 Institut Mines Telecom / Telecom Bretagne
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <iostream>
#include "otbImage.h"
#include "otbImageFileReader.h"
#include "otbImageFileWriter.h"
#include "otbCommandProgressUpdate.h"
#include "otbKullbackLeiblerSupervizedDistanceImageFilter.h"
int main(int argc, char * argv[])
{
try
{
if( argc < 5 )
{
std::cerr << "Usage: " << argv[0];
std::cerr << "inputNameImage1 inputNameImage2 ROIImageName outputName ";
std::cerr << "[winSize=35]";
return EXIT_FAILURE;
}
/*
* Types declaration
*/
const unsigned int Dimension = 2;
typedef double InputPixelType;
typedef unsigned char TrainingPixelType;
typedef otb::Image<InputPixelType, Dimension> ImageType;
typedef otb::ImageFileReader<ImageType> ReaderType;
typedef otb::Image<TrainingPixelType, Dimension> TrainingImageType;
typedef otb::ImageFileReader<TrainingImageType> TrainingReaderType;
/*
* Extract command line parameters
*/
std::string inputImageFileName1 = argv[1];
std::string inputImageFileName2 = argv[2];
std::string inputTrainingImageFileName = argv[3];
std::string outputImageFileName = argv[4];
int winSize = 35;
if ( argc == 6 )
winSize = std::stoi(argv[5]);
/*
* JustDoIt
*/
ImageType::Pointer img1 = ImageType::New();
ReaderType::Pointer reader1 = ReaderType::New();
reader1->SetFileName(inputImageFileName1);
//reader1->Update();
img1 = reader1->GetOutput();
ImageType::Pointer img2 = ImageType::New();
ReaderType::Pointer reader2 = ReaderType::New();
reader2->SetFileName(inputImageFileName2);
//reader2->Update();
img2 = reader2->GetOutput();
TrainingImageType::Pointer imgRoi = TrainingImageType::New();
TrainingReaderType::Pointer readerRoi = TrainingReaderType::New();
readerRoi->SetFileName(inputTrainingImageFileName);
//readerRoi->Update();
imgRoi = readerRoi->GetOutput();
typedef otb::KullbackLeiblerSupervizedDistanceImageFilter<
ImageType, ImageType, TrainingImageType, ImageType> FilterType;
FilterType::Pointer changeDetector = FilterType::New();
changeDetector->SetRadius((winSize - 1) / 2);
changeDetector->SetInput1(img1);
changeDetector->SetInput2(img2);
// Once img1 and img2 are connected, it is time to connect imgRoi
// to perform the parameters estimation of the non-changed area.
changeDetector->SetTrainingArea(imgRoi);
typedef otb::CommandProgressUpdate<FilterType> CommandType;
CommandType::Pointer observer = CommandType::New();
changeDetector->AddObserver(itk::ProgressEvent(), observer);
typedef otb::ImageFileWriter<ImageType> WriterType;
WriterType::Pointer writer = WriterType::New();
writer->SetFileName(outputImageFileName);
writer->SetInput(changeDetector->GetOutput());
writer->Update();
}
catch (itk::ExceptionObject& err)
{
std::cerr << "ExceptionObject caught !" << std::endl;
std::cerr << err << std::endl << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
/*
* Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "otbImageFileReader.h"
#include "otbImageFileWriter.h"
#include "otbImage.h"
#include "itkShiftScaleImageFilter.h"
#include "otbLHMIChangeDetector.h"
#include "otbCommandProgressUpdate.h"
int main(int argc, char* argv[])
{
if (argc < 5)
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] <<
" inputImageFile1 inputImageFile2 radius outputImageFile " << std::endl;
return -1;
}
// Define the dimension of the images
const unsigned int Dimension = 2;
// Declare the types of the images
typedef float InternalPixelType;
typedef unsigned char OutputPixelType;
typedef otb::Image<InternalPixelType, Dimension> InputImageType1;
typedef otb::Image<InternalPixelType, Dimension> InputImageType2;
typedef otb::Image<InternalPixelType, Dimension> ChangeImageType;
typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
typedef otb::ImageFileReader<InputImageType1> ReaderType1;
typedef otb::ImageFileReader<InputImageType2> ReaderType2;
typedef otb::ImageFileWriter<OutputImageType> WriterType;
typedef itk::ShiftScaleImageFilter<ChangeImageType,
OutputImageType> RescalerType;
// Declare the type for the filter
typedef otb::LHMIChangeDetector<
InputImageType1,
InputImageType2,
ChangeImageType> FilterType;
ReaderType1::Pointer reader1 = ReaderType1::New();
ReaderType2::Pointer reader2 = ReaderType2::New();
WriterType::Pointer writer = WriterType::New();
FilterType::Pointer filter = FilterType::New();
RescalerType::Pointer rescaler = RescalerType::New();
const char * inputFilename1 = argv[1];
const char * inputFilename2 = argv[2];
const char * outputFilename = argv[4];
reader1->SetFileName(inputFilename1);
reader2->SetFileName(inputFilename2);
writer->SetFileName(outputFilename);
float scale = itk::NumericTraits<OutputPixelType>::max();
rescaler->SetScale(scale);
filter->SetInput1(reader1->GetOutput());
filter->SetInput2(reader2->GetOutput());
filter->SetRadius(atoi(argv[3]));
rescaler->SetInput(filter->GetOutput());
writer->SetInput(rescaler->GetOutput());
typedef otb::CommandProgressUpdate<FilterType> CommandType;
CommandType::Pointer observer = CommandType::New();
filter->AddObserver(itk::ProgressEvent(), observer);
try
{
writer->Update();
}
catch (itk::ExceptionObject& err)
{
std::cout << "ExceptionObject caught !" << std::endl;
std::cout << err << std::endl;
return -1;
}
return EXIT_SUCCESS;
}
......@@ -19,7 +19,7 @@
#
set(BASELINE ${OTB_DATA_ROOT}/Baseline/Examples/ChangeDetection)
set(INPUTDATA ${OTB_DATA_ROOT}/Examples)
set(INPUTDATA ${OTB_DATA_ROOT}/Input)
# ------- CorrelChDetTest----------
......
......@@ -19,7 +19,7 @@
#
set(BASELINE ${OTB_DATA_ROOT}/Baseline/Examples/Classification)
set(INPUTDATA ${OTB_DATA_ROOT}/Examples)
set(INPUTDATA ${OTB_DATA_ROOT}/Input)
otb_add_test(NAME clTeNeighborhoodMajorityVotingImageFilterTest COMMAND ${OTB_TEST_DRIVER}
--compare-image ${NOTOL}
......
#
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
# https://www.orfeo-toolbox.org/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
project(ContainersExamples)
add_executable(TreeContainer TreeContainer.cxx )
target_link_libraries(TreeContainer ${ITK_LIBRARIES})
if(BUILD_TESTING)
add_subdirectory(test)
endif()
/*
* Copyright (C) 1999-2011 Insight Software Consortium
* Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*