diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 8d63be9d90ed3717a27c0534aed33346e3e8b24d..f547e6c40c082f2871e715545033ee543e7beefa 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -22,6 +22,7 @@ SET( otbHyperTests1_SRC otbHorizontalSobelVectorImageFilter.cxx otbVerticalSobelVectorImageFilter.cxx otbSobelVectorImageFilter.cxx + otbLocalGradientVectorImageFilter.cxx otbLocalActivityVectorImageFilter.cxx otbNormalizeVectorImageFilter.cxx otbPCAImageFilter.cxx @@ -380,6 +381,16 @@ ADD_TEST(bfTvSobelVectorImageFilter -in ${DATA}/CupriteSubHsi/cupriteSubHsi.tif -out ${TEMP}/cupriteSobelFlt.hdr) +ADD_TEST(bfTuLocalGradientVectorImageFilterNew + ${TESTEXE_DIR}/otbHyperTests1 + otbLocalGradientVectorImageFilterNewTest) + +ADD_TEST(bfTvLocalGradientVectorImageFilter + ${TESTEXE_DIR}/otbHyperTests1 + otbLocalGradientVectorImageFilterTest + -in ${DATA}/CupriteSubHsi/cupriteSubHsi.tif + -out ${TEMP}/cupriteLocalGradientFlt.hdr) + ADD_TEST(bfTuLocalActivityVectorImageFilterNew ${TESTEXE_DIR}/otbHyperTests1 otbLocalActivityVectorImageFilterNewTest) diff --git a/Testing/otbHyperTests1.cxx b/Testing/otbHyperTests1.cxx index ec22a5adc26d57af527e081964bb9551a35e9328..1eff9da7fef68c4cd02fe201e5d5b1804b03938a 100644 --- a/Testing/otbHyperTests1.cxx +++ b/Testing/otbHyperTests1.cxx @@ -55,6 +55,8 @@ void RegisterTests() REGISTER_TEST(otbVerticalSobelVectorImageFilterTest); REGISTER_TEST(otbSobelVectorImageFilterNewTest); REGISTER_TEST(otbSobelVectorImageFilterTest); + REGISTER_TEST(otbLocalGradientVectorImageFilterNewTest); + REGISTER_TEST(otbLocalGradientVectorImageFilterTest); REGISTER_TEST(otbLocalActivityVectorImageFilterNewTest); REGISTER_TEST(otbLocalActivityVectorImageFilterTest); REGISTER_TEST(otbNormalizeVectorImageFilterNewTest); diff --git a/Testing/otbLocalGradientVectorImageFilter.cxx b/Testing/otbLocalGradientVectorImageFilter.cxx new file mode 100644 index 0000000000000000000000000000000000000000..6d08220d5a5be6d70c8d3bef79242e2b35f94536 --- /dev/null +++ b/Testing/otbLocalGradientVectorImageFilter.cxx @@ -0,0 +1,100 @@ +/*========================================================================= + + Program: ORFEO Toolbox + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. + See OTBCopyright.txt for details. + + Copyright (c) Institut Telecom ; Telecom Bretagne. All rights reserved. + See ITCopyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "otbVectorImage.h" +#include "otbImageFileReader.h" +#include "otbImageFileWriter.h" +#include "otbCommandProgressUpdate.h" +#include "otbCommandLineArgumentParser.h" + +#include "otbLocalGradientVectorImageFilter.h" + +int otbLocalGradientVectorImageFilterNewTest ( int argc, char * argv[] ) +{ + const unsigned int Dimension = 2; + typedef double PixelType; + typedef otb::VectorImage< PixelType, Dimension > ImageType; + typedef otb::LocalGradientVectorImageFilter< ImageType, ImageType > + FilterType; + FilterType::Pointer filter = FilterType::New(); + std::cout << filter << std::endl; + return EXIT_SUCCESS; +} + +int otbLocalGradientVectorImageFilterTest ( int argc, char* argv[] ) +{ + typedef otb::CommandLineArgumentParser ParserType; + ParserType::Pointer parser = ParserType::New(); + + parser->AddInputImage(); + parser->AddOutputImage(); + + typedef otb::CommandLineArgumentParseResult ParserResultType; + ParserResultType::Pointer parseResult = ParserResultType::New(); + + try + { + parser->ParseCommandLine( argc, argv, parseResult ); + } + catch( itk::ExceptionObject & err ) + { + std::cerr << argv[0] << " performs horizonal sobel on a vector image\n"; + std::string descriptionException = err.GetDescription(); + if ( descriptionException.find("ParseCommandLine(): Help Parser") + != std::string::npos ) + return EXIT_SUCCESS; + if(descriptionException.find("ParseCommandLine(): Version Parser") + != std::string::npos ) + return EXIT_SUCCESS; + return EXIT_FAILURE; + } + + const char * inputImageName = parseResult->GetInputImage().c_str(); + const char * outputImageName = parseResult->GetOutputImage().c_str(); + + // Main type definition + const unsigned int Dimension = 2; + typedef double PixelType; + typedef otb::VectorImage< PixelType, Dimension > ImageType; + + // Reading input images + typedef otb::ImageFileReader<ImageType> ReaderType; + ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(inputImageName); + + // Image filtering + typedef otb::LocalGradientVectorImageFilter< ImageType, ImageType > + FilterType; + FilterType::Pointer filter = FilterType::New(); + filter->SetInput( reader->GetOutput() ); + + typedef otb::CommandProgressUpdate< FilterType > CommandType; + CommandType::Pointer observer = CommandType::New(); + filter->AddObserver( itk::ProgressEvent(), observer ); + + typedef otb::ImageFileWriter< ImageType > ImageWriterType; + ImageWriterType::Pointer writer = ImageWriterType::New(); + writer->SetFileName( outputImageName ); + writer->SetInput( filter->GetOutput() ); + writer->Update(); + + return EXIT_SUCCESS; +} +