X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Testing%2FVTKTestWrite.cxx;h=34bfd060fe0a0d98f7687cab18bda8c2c971c4d9;hb=f540ed5835e7b89478e6048a577d494c0e156f2a;hp=e782dd72264430089c999bf05ca2b80d4e3d9027;hpb=e6ff7dc295436e9463650ea13ab965ce35ae126c;p=gdcm.git diff --git a/Testing/VTKTestWrite.cxx b/Testing/VTKTestWrite.cxx index e782dd72..34bfd060 100644 --- a/Testing/VTKTestWrite.cxx +++ b/Testing/VTKTestWrite.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: VTKTestWrite.cxx,v $ Language: C++ - Date: $Date: 2005/01/19 10:43:01 $ - Version: $Revision: 1.1 $ + Date: $Date: 2005/09/08 14:40:15 $ + Version: $Revision: 1.11 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -15,7 +15,6 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ -#include "gdcmFile.h" #include "vtkGdcmReader.h" #include "vtkGdcmWriter.h" #include "vtkImageViewer.h" @@ -31,16 +30,17 @@ //Generated file: #include "gdcmDataImages.h" +#include "gdcmDebug.h" + #ifndef vtkFloatingPointType #define vtkFloatingPointType float #endif int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer, - std::string const & filename, - std::string const & referenceFileName, - bool show ) + std::string const &filename, + std::string const &referenceFileName) { - int retVal = 0; //by default this is an error + int retVal; t->CleanArguments(); t->AddArgument("-D"); @@ -54,13 +54,17 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer, vtkGdcmReader *origin = vtkGdcmReader::New(); origin->SetFileName( filename.c_str() ); origin->Update(); - + + std::cout << "1 ..."; + // Write the image vtkGdcmWriter *writer = vtkGdcmWriter::New(); writer->SetFileName( "TestWrite.dcm" ); writer->SetInput(origin->GetOutput()); + std::cout << "2' ...", writer->Write(); + std::cout << "2'' ..."; origin->Delete(); writer->Delete(); @@ -69,22 +73,24 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer, reader->SetFileName( "TestWrite.dcm" ); reader->Update(); + std::cout << "3 ..."; + double range[2]; + reader->GetOutput()->GetScalarRange(range); int dim[3]; reader->GetOutput()->GetDimensions( dim ); // Show - if( show ) + if( viewer ) { viewer->SetInput ( reader->GetOutput() ); - vtkFloatingPointType *range = reader->GetOutput()->GetScalarRange(); viewer->SetColorWindow (range[1] - range[0]); viewer->SetColorLevel (0.5 * (range[1] + range[0])); viewer->SetSize(dim[0], dim[1]); if(dim[2] != 1) { - //For multifame dicom, take a snapshot of the center slice (+/- 1) + //For multiframe dicom, take a snapshot of the center slice (+/- 1) viewer->SetZSlice( dim[2] / 2 ); } else @@ -97,6 +103,7 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer, viewer->SetInput(NULL); } + std::cout << std::endl; //---------------------------------------------------------------------- // Transform the image to be RGB unsigned char, due to the requests in // vtkTesting processing @@ -114,6 +121,7 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer, clip->SetInput(image); clip->SetOutputWholeExtent(ext[0],ext[1],ext[2],ext[3], ext[4]+dim[2] / 2,ext[4]+dim[2] / 2); + clip->ClipDataOn(); vtkImageTranslateExtent *translat=vtkImageTranslateExtent::New(); translat->SetInput(clip->GetOutput()); translat->SetTranslation(0,0,-ext[4]-dim[2] / 2); @@ -130,12 +138,11 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer, // Set an unsigned char image // Shift/Scale the image image->Update(); - double *rng=image->GetScalarRange(); vtkImageShiftScale *iss=vtkImageShiftScale::New(); iss->SetInput(image); iss->SetOutputScalarTypeToUnsignedChar(); - iss->SetShift(-rng[0]); - iss->SetScale(255.0/(rng[1]-rng[0])); + iss->SetShift(-range[0]); + iss->SetScale(255.0/(range[1]-range[0])); iss->ClampOverflowOn(); image->UnRegister(NULL); @@ -196,8 +203,10 @@ int VTKTestWrite(int argc, char *argv[]) } } +// gdcm::Debug::DebugOn(); + int ret = 0; - vtkTesting* t = vtkTesting::New(); + vtkTesting *t = vtkTesting::New(); vtkImageViewer *viewer; if( show ) viewer = vtkImageViewer::New(); @@ -212,9 +221,10 @@ int VTKTestWrite(int argc, char *argv[]) } else { - ret = VTKWriteTest(t,viewer,argv[1+show],argv[2+show],show); + ret = VTKWriteTest(t,viewer,argv[1+show],argv[2+show]); t->Delete(); - viewer->Delete(); + if( viewer ) + viewer->Delete(); return ret; } @@ -237,10 +247,11 @@ int VTKTestWrite(int argc, char *argv[]) pngfile.insert( 0, "Baseline/"); //std::cerr << "PNG file: " << pngfile << std::endl; - ret += VTKWriteTest(t,viewer,filename,pngfile,show); + ret += VTKWriteTest(t,viewer,filename,pngfile); } t->Delete(); - viewer->Delete(); + if( viewer ) + viewer->Delete(); return ret; }