X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Testing%2FVTKTestRead.cxx;h=4524aff436a7139ae437720cb5933dfd6ad8c46a;hb=4552d4ee18f3234af4e037e77abf0622c2702004;hp=655c41d96149a759903a915c6356bfe400c552de;hpb=ba91c71660a3989f80dc58803244f5fca47850e5;p=gdcm.git diff --git a/Testing/VTKTestRead.cxx b/Testing/VTKTestRead.cxx index 655c41d9..4524aff4 100644 --- a/Testing/VTKTestRead.cxx +++ b/Testing/VTKTestRead.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: VTKTestRead.cxx,v $ Language: C++ - Date: $Date: 2005/01/19 10:49:47 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/09/15 15:49:21 $ + Version: $Revision: 1.16 $ 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 "vtkImageViewer.h" #include "vtkImageData.h" @@ -25,7 +24,10 @@ #include "vtkImageAppendComponents.h" #include "vtkImageShiftScale.h" +#include "vtkPNGWriter.h" + #include +#include //Generated file: #include "gdcmDataImages.h" @@ -35,11 +37,10 @@ #endif int VTKReadTest(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; // = 0; (to avoid bcc5.5 warnings) t->CleanArguments(); t->AddArgument("-D"); @@ -49,21 +50,12 @@ int VTKReadTest(vtkTesting *t,vtkImageViewer *viewer, t->AddArgument("-T"); t->AddArgument( "." ); - // Instead of directly reading the dicom let's write it down to another file - // do a scope to be sure everything gets cleanup - { - gdcm::File file( filename ); - file.GetImageData(); - file.SetWriteModeToRaw(); - file.WriteDcmExplVR( "TestWrite.dcm" ); - } - - // Ok for now still use the original image, vtkGdcmReader *reader = vtkGdcmReader::New(); - //reader->SetFileName( filename.c_str() ); - reader->SetFileName( "TestWrite.dcm" ); + reader->SetFileName( filename.c_str() ); reader->Update(); + double range[2]; + reader->GetOutput()->GetScalarRange(range); int dim[3]; reader->GetOutput()->GetDimensions( dim ); @@ -72,7 +64,6 @@ int VTKReadTest(vtkTesting *t,vtkImageViewer *viewer, { viewer->SetInput ( reader->GetOutput() ); - vtkFloatingPointType *range = reader->GetOutput()->GetScalarRange(); viewer->SetColorWindow (range[1] - range[0]); viewer->SetColorLevel (0.5 * (range[1] + range[0])); @@ -109,6 +100,7 @@ int VTKReadTest(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); @@ -124,13 +116,11 @@ int VTKReadTest(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); @@ -158,7 +148,7 @@ int VTKReadTest(vtkTesting *t,vtkImageViewer *viewer, //---------------------------------------------------------------------- // make test - ostrstream str; + std::ostringstream str; retVal = t->RegressionTest(image,0.0,str); image->UnRegister(NULL); @@ -166,7 +156,6 @@ int VTKReadTest(vtkTesting *t,vtkImageViewer *viewer, { std::cerr << str.str(); } - str.rdbuf()->freeze(1); if( retVal == vtkTesting::PASSED ) { @@ -193,7 +182,7 @@ int VTKTestRead(int argc, char *argv[]) } int ret = 0; - vtkTesting* t = vtkTesting::New(); + vtkTesting *t = vtkTesting::New(); vtkImageViewer *viewer; if( show ) viewer = vtkImageViewer::New(); @@ -208,12 +197,15 @@ int VTKTestRead(int argc, char *argv[]) } else { - ret = VTKReadTest(t,viewer,argv[1+show],argv[2+show],show); + ret = VTKReadTest(t,viewer,argv[1+show],argv[2+show]); t->Delete(); - viewer->Delete(); + if( viewer ) + viewer->Delete(); return ret; } + + //GDCM_NAME_SPACE::Debug::DebugOn(); // Comment out when no bug is to be tracked // Test for all images int i = 0; @@ -233,10 +225,10 @@ int VTKTestRead(int argc, char *argv[]) pngfile.insert( 0, "Baseline/"); //std::cerr << "PNG file: " << pngfile << std::endl; - ret += VTKReadTest(t,viewer,filename,pngfile,show); + ret += VTKReadTest(t,viewer,filename,pngfile); } t->Delete(); - if(viewer) + if( viewer ) viewer->Delete(); return ret;