From 04b9feeb2fde41b702b0d9fe05ca929da7f83e22 Mon Sep 17 00:00:00 2001 From: Patrick Imbo <patrick.imbo@c-s.fr> Date: Tue, 4 Jul 2006 17:02:47 +0000 Subject: [PATCH] --- Testing/Code/IO/CMakeLists.txt | 17 +++-- Testing/Code/IO/otbIOTests.cxx | 1 + .../IO/otbImageFileReaderONERAComplex.cxx | 19 +++-- ...tbImageFileWriterStreamingONERAComplex.cxx | 76 +++++++++++++++++++ 4 files changed, 98 insertions(+), 15 deletions(-) create mode 100644 Testing/Code/IO/otbImageFileWriterStreamingONERAComplex.cxx diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt index 850f4e89f9..c4372ad0a6 100755 --- a/Testing/Code/IO/CMakeLists.txt +++ b/Testing/Code/IO/CMakeLists.txt @@ -151,23 +151,29 @@ ADD_TEST(ioTvONERAImageFileReader ${IO_TESTS} # ${TEMP}/ioImageFileReaderONERA.ent otbImageFileReaderONERATest ${IMAGEDATA}/ONERA/spa3_0215_rad.ent -# ${TEMP}/ioImageFileReaderONERA.ent ) ${TEMP}/ioImageFileReaderONERA.hdr ) ADD_TEST(ioTvONERAImageFileReaderComplex ${IO_TESTS} - --compare-image ${TOL} ${BASELINE}/ioImageFileReaderONERAComplex.hdr - ${TEMP}/ioImageFileReaderONERAComplex.hdr +# --compare-image ${TOL} ${BASELINE}/ioImageFileReaderONERAComplex.hdr +# ${TEMP}/ioImageFileReaderONERAComplex.hdr otbImageFileReaderONERAComplex ${IMAGEDATA}/ONERA/spa3_0215_rad.ent ${TEMP}/ioImageFileReaderONERAComplex.hdr ) ADD_TEST(ioTvONERAImageFileWriterComplex ${IO_TESTS} - --compare-image ${TOL} ${BASELINE}/ioImageFileReaderONERAComplexWrite.ent - ${TEMP}/ioImageFileReaderONERAComplexWrite.ent +# --compare-image ${TOL} ${BASELINE}/ioImageFileReaderONERAComplexWrite.ent +# ${TEMP}/ioImageFileReaderONERAComplexWrite.ent otbImageFileWriterONERAComplex ${IMAGEDATA}/ONERA/spa3_0215_rad.ent ${TEMP}/ioImageFileReaderONERAComplexWrite.ent ) +ADD_TEST(ioTvONERAImageStreamWriter ${IO_TESTS} + --compare-image ${TOL} ${TEMP}/ioImageFileReaderONERAStreamWrite.ent + ${IMAGEDATA}/ONERA/spa3_0215_rad.ent + otbImageFileWriterStreamingONERAComplex + ${IMAGEDATA}/ONERA/spa3_0215_rad.ent + ${TEMP}/ioImageFileReaderONERAStreamWrite.ent ) + # ------- otb::ImageFileReader pour CAI ------------------------------ # Niveau de Gris ADD_TEST(ioTvImageFileReaderPNG2PNG ${IO_TESTS} @@ -608,6 +614,7 @@ otbONERAImageIOTestCanRead.cxx otbImageFileReaderONERA.cxx otbImageFileReaderONERAComplex.cxx otbImageFileWriterONERAComplex.cxx +otbImageFileWriterStreamingONERAComplex.cxx otbImageFileReaderTest.cxx otbImageFileWriterTest.cxx otbVectorImageFileReaderWriterTest.cxx diff --git a/Testing/Code/IO/otbIOTests.cxx b/Testing/Code/IO/otbIOTests.cxx index 4378f3a80e..ce47408481 100755 --- a/Testing/Code/IO/otbIOTests.cxx +++ b/Testing/Code/IO/otbIOTests.cxx @@ -42,6 +42,7 @@ REGISTER_TEST(otbImageFileReaderERS); REGISTER_TEST(otbImageFileReaderONERATest); REGISTER_TEST(otbImageFileReaderONERAComplex); REGISTER_TEST(otbImageFileWriterONERAComplex); +REGISTER_TEST(otbImageFileWriterStreamingONERAComplex); REGISTER_TEST(otbStreamingImageFilterTest); REGISTER_TEST(otbStreamingImageFileWriterTest); REGISTER_TEST(otbVectorImageTest); diff --git a/Testing/Code/IO/otbImageFileReaderONERAComplex.cxx b/Testing/Code/IO/otbImageFileReaderONERAComplex.cxx index 0fdd0db20d..1f2509b625 100644 --- a/Testing/Code/IO/otbImageFileReaderONERAComplex.cxx +++ b/Testing/Code/IO/otbImageFileReaderONERAComplex.cxx @@ -23,7 +23,6 @@ //#define MAIN -#include "itkImage.h" #include "itkVectorImage.h" #include "itkExceptionObject.h" #include <iostream> @@ -60,14 +59,8 @@ int otbImageFileReaderONERAComplex(int argc, char* argv[]) streaming->SetNumberOfStreamDivisions(100); streaming->SetInput(complexReader->GetOutput()); - typedef itk::ComplexToModulusImageFilter< - InputImageType, OutputImageType > ModulusFilterType; - - ModulusFilterType::Pointer modulusFilter = ModulusFilterType::New(); - modulusFilter->SetInput( streaming->GetOutput() ); - - typedef otb::ExtractROI< OutputPixelType, - OutputPixelType > ExtractROIFilterType; + typedef otb::ExtractROI< InputPixelType, + InputPixelType > ExtractROIFilterType; ExtractROIFilterType::Pointer extractROIFilter = ExtractROIFilterType::New(); @@ -75,7 +68,13 @@ int otbImageFileReaderONERAComplex(int argc, char* argv[]) extractROIFilter->SetStartY( 10 ); extractROIFilter->SetSizeX( 100 ); extractROIFilter->SetSizeY( 100 ); - extractROIFilter->SetInput( modulusFilter->GetOutput() ); + extractROIFilter->SetInput( streaming->GetOutput() ); + + typedef itk::ComplexToModulusImageFilter< + InputImageType, OutputImageType > ModulusFilterType; + + ModulusFilterType::Pointer modulusFilter = ModulusFilterType::New(); + modulusFilter->SetInput( extractROIFilter->GetOutput() ); WriterType::Pointer writer = WriterType::New(); diff --git a/Testing/Code/IO/otbImageFileWriterStreamingONERAComplex.cxx b/Testing/Code/IO/otbImageFileWriterStreamingONERAComplex.cxx new file mode 100644 index 0000000000..90e53b7055 --- /dev/null +++ b/Testing/Code/IO/otbImageFileWriterStreamingONERAComplex.cxx @@ -0,0 +1,76 @@ +/*========================================================================= + + Program: ORFEO Toolbox + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. + See OTBCopyright.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. + +=========================================================================*/ + +#if defined(_MSC_VER) +#pragma warning ( disable : 4786 ) +#endif + +#include "otbImage.h" +#include "itkExceptionObject.h" +#include <iostream> +#include "itkComplexToModulusImageFilter.h" +#include "itkStreamingImageFilter.h" +#include "otbImageFileReader.h" +#include "otbStreamingImageFileWriter.h" + +int otbImageFileWriterStreamingONERAComplex(int argc, char* argv[]) +{ + try + { + // Verify the number of parameters in the command line + const char * inputFilename = argv[1]; + const char * outputFilename = argv[2]; + + typedef std::complex<float> PixelType; + const unsigned int Dimension = 2; + + typedef otb::Image<PixelType, Dimension > ImageType; + + typedef otb::ImageFileReader< ImageType > ReaderType; + typedef otb::StreamingImageFileWriter< ImageType > WriterType; + typedef itk::StreamingImageFilter< ImageType, + ImageType > StreamingType; + + ReaderType::Pointer complexReader = ReaderType::New(); + complexReader->SetFileName( inputFilename ); + + StreamingType::Pointer streaming = StreamingType::New(); + streaming->SetNumberOfStreamDivisions(100); + streaming->SetInput(complexReader->GetOutput()); + + WriterType::Pointer complexWriter = WriterType::New(); + complexWriter->SetFileName( outputFilename ); + complexWriter->SetInput( streaming->GetOutput() ); + complexWriter->Update(); + + } + catch( itk::ExceptionObject & err ) + { + std::cerr << "Exception OTB attrappee dans exception ITK !" << std::endl; + std::cerr << err << std::endl; + return EXIT_FAILURE; + } + catch( ... ) + { + std::cerr << "Exception OTB non attrappee !" << std::endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} + -- GitLab