X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Testing%2FVTKTestReadSeq.cxx;h=3a7d262615f8ddae7246cdf41f407609b777b53b;hb=4552d4ee18f3234af4e037e77abf0622c2702004;hp=7339eb8aedf2176bb3bc889a4b0e41582c749be1;hpb=e6ff7dc295436e9463650ea13ab965ce35ae126c;p=gdcm.git diff --git a/Testing/VTKTestReadSeq.cxx b/Testing/VTKTestReadSeq.cxx index 7339eb8a..3a7d2626 100644 --- a/Testing/VTKTestReadSeq.cxx +++ b/Testing/VTKTestReadSeq.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: VTKTestReadSeq.cxx,v $ Language: C++ - Date: $Date: 2005/01/19 10:43:01 $ - Version: $Revision: 1.1 $ + Date: $Date: 2007/09/18 07:58:38 $ + Version: $Revision: 1.12 $ 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" @@ -26,6 +25,7 @@ #include "vtkImageShiftScale.h" #include +#include //Generated file: #include "gdcmDataSeqImages.h" @@ -34,12 +34,11 @@ #define vtkFloatingPointType float #endif -int VTKReadSeqTest(vtkTesting *t,vtkImageViewer *viewer, - std::string const & filename, - std::string const & referenceFileName, - bool show ) +int VTKReadSeqTest(vtkTesting *t, vtkImageViewer *viewer, + std::string const &filename, + std::string const &referenceFileName) { - int retVal = 0; //by default this is an error + int retVal; // = 0; (to avoid bcc 5.5 warnings) // Set the reader vtkGdcmReader *reader = vtkGdcmReader::New(); @@ -64,12 +63,15 @@ int VTKReadSeqTest(vtkTesting *t,vtkImageViewer *viewer, delete[] newFileDcm; reader->Update(); - if( show ) + double range[2]; + reader->GetOutput()->GetScalarRange(range); + + // Show + if( viewer ) { viewer->SetInput ( reader->GetOutput() ); viewer->OffScreenRenderingOff(); - vtkFloatingPointType *range = reader->GetOutput()->GetScalarRange(); viewer->SetColorWindow (range[1] - range[0]); viewer->SetColorLevel (0.5 * (range[1] + range[0])); @@ -83,7 +85,7 @@ int VTKReadSeqTest(vtkTesting *t,vtkImageViewer *viewer, // make test int ret = 0; - ostrstream str; + std::ostringstream str; char *newFilePng = new char[referenceFileName.size()+1]; for(int j=0;jSetInput(image); clip->SetOutputWholeExtent(ext[0],ext[1],ext[2],ext[3],j,j); + clip->ClipDataOn(); vtkImageTranslateExtent *translat=vtkImageTranslateExtent::New(); translat->SetInput(clip->GetOutput()); translat->SetTranslation(0,0,-j); @@ -125,12 +128,11 @@ int VTKReadSeqTest(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); @@ -165,7 +167,6 @@ int VTKReadSeqTest(vtkTesting *t,vtkImageViewer *viewer, { std::cerr << str.str(); } - str.rdbuf()->freeze(1); if( retVal == vtkTesting::PASSED ) { @@ -196,7 +197,7 @@ int VTKTestReadSeq(int argc, char *argv[]) } int ret = 0; - vtkTesting* t = vtkTesting::New(); + vtkTesting *t = vtkTesting::New(); vtkImageViewer *viewer; if( show ) viewer = vtkImageViewer::New(); @@ -213,9 +214,10 @@ int VTKTestReadSeq(int argc, char *argv[]) } else { - ret = VTKReadSeqTest(t,viewer,argv[1+show],argv[2+show],show); + ret = VTKReadSeqTest(t,viewer,argv[1+show],argv[2+show]); t->Delete(); - viewer->Delete(); + if( viewer ) + viewer->Delete(); return ret; } @@ -235,10 +237,11 @@ int VTKTestReadSeq(int argc, char *argv[]) pngfile = pngfile.substr(0, dot_pos).append( ".png" ); pngfile.insert( 0, "Baseline/"); - ret += VTKReadSeqTest(t,viewer,filename,pngfile,show); + ret += VTKReadSeqTest(t,viewer,filename,pngfile); } t->Delete(); - viewer->Delete(); + if( viewer ) + viewer->Delete(); return ret; }