diff --git a/Modules/Filtering/Wavelet/test/CMakeLists.txt b/Modules/Filtering/Wavelet/test/CMakeLists.txt index e09d0c8e48ffea54f1fba01038175b636de7b919..f8c8023e5de7774d5707d296a2b854169716ab5e 100644 --- a/Modules/Filtering/Wavelet/test/CMakeLists.txt +++ b/Modules/Filtering/Wavelet/test/CMakeLists.txt @@ -15,6 +15,7 @@ otbWaveletFilterBank.cxx otbWaveletPacketTransformNew.cxx otbWaveletFilterBankNew.cxx otbWaveletOperatorNew.cxx +otbWaveletImageToImageFilter.cxx ) add_executable(otbWaveletTestDriver ${OTBWaveletTests}) @@ -572,3 +573,11 @@ otb_add_test(NAME msTuWaveletFilterBankNew COMMAND otbWaveletTestDriver otb_add_test(NAME msTuWaveletOperatorNew COMMAND otbWaveletTestDriver otbWaveletOperatorNew ) +otb_add_test(NAME msTvWaveletImageToImageFilter COMMAND otbWaveletTestDriver + --compare-image ${EPSILON_6} + ${INPUTDATA}/QB_Toulouse_Ortho_PAN.tif + ${TEMP}/msTvWaveletImageToImageFilterOut.tif + otbWaveletImageToImageFilter + ${INPUTDATA}/QB_Toulouse_Ortho_PAN.tif + ${TEMP}/msTvWaveletImageToImageFilterOut.tif + ) diff --git a/Modules/Filtering/Wavelet/test/otbWaveletImageToImageFilter.cxx b/Modules/Filtering/Wavelet/test/otbWaveletImageToImageFilter.cxx new file mode 100644 index 0000000000000000000000000000000000000000..e36dd118f9e4bb1a1424e33bc41bf5c86c9845a2 --- /dev/null +++ b/Modules/Filtering/Wavelet/test/otbWaveletImageToImageFilter.cxx @@ -0,0 +1,89 @@ +/*========================================================================= + + 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 Mines-Telecom. All rights reserved. + See IMTCopyright.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. + +=========================================================================*/ +/* +This test code will run a WaveletImageFilter on given input image. +Output from this filter is fed to WaveletInverseImageFilter which does the inverse +transform that will result in the same input image. + +Wavelet operator used is HAAR (otb::Wavelet::HAAR). +This filter works only in single-threaded setup +*/ + +#include "otbImage.h" +#include "otbImageFileReader.h" +#include "otbImageFileWriter.h" +#include "otbWaveletImageFilter.h" +#include "otbWaveletInverseImageFilter.h" + +int otbWaveletImageToImageFilter(int argc, char * argv[]) +{ + + const char * inputFileName = argv[1]; + const char * outputFileName = argv[argc-1]; + + /* Wavelet operator */ + const otb::Wavelet::Wavelet OperatorType = otb::Wavelet::HAAR; + + const int Dimension = 2; + typedef double PixelType; + typedef otb::Image<PixelType, Dimension> ImageType; + typedef otb::ImageFileReader<ImageType> ReaderType; + + + + typedef otb::WaveletImageFilter< + ImageType, + ImageType, + OperatorType> FwdFilterType; + + typedef otb::WaveletInverseImageFilter< + ImageType, + ImageType, + OperatorType> InvFilterType; + + typedef otb::ImageFileWriter<ImageType> WriterType; + + itk::MultiThreader::SetGlobalMaximumNumberOfThreads( 1 ); + + /* Reading */ + ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(inputFileName); + + /* Forward Transformation */ + FwdFilterType::Pointer fwdFilter = FwdFilterType::New(); + + fwdFilter->SetInput(reader->GetOutput()); + fwdFilter->Update(); + + /* Inverse Transformation */ + + InvFilterType::Pointer invFilter = InvFilterType::New(); + + invFilter->SetInput(fwdFilter->GetOutput()); + invFilter->Update(); + + /* Writing output */ + WriterType::Pointer writer = WriterType::New(); + writer->SetFileName(outputFileName); + writer->SetInput(invFilter->GetOutput()); + writer->Update(); + + return EXIT_SUCCESS; +} diff --git a/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx b/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx index 532d5e7880926866964abe550f940c198b594eb6..60c07f794cfc141162783e429dc8849425b361ff 100644 --- a/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx +++ b/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx @@ -14,4 +14,5 @@ void RegisterTests() REGISTER_TEST(otbWaveletPacketTransformNew); REGISTER_TEST(otbWaveletFilterBankNew); REGISTER_TEST(otbWaveletOperatorNew); + REGISTER_TEST(otbWaveletImageToImageFilter); }