]> Creatis software - gdcm.git/blobdiff - Testing/VTKTestWrite.cxx
use GDCM_NAME_SPACE:: instead of gdcm::, even in Examples ...
[gdcm.git] / Testing / VTKTestWrite.cxx
index 2d9614e0f8f7fe36bfc575bafbf3a93a3512a04a..384d42d1be082f4d69570e6657fc9349a8ab044e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: VTKTestWrite.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/19 13:50:11 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2008/09/15 15:49:21 $
+  Version:   $Revision: 1.13 $
 
   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"
 #include "vtkImageShiftScale.h"
 
 #include <iostream>
+#include <sstream>
 
 //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 +55,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 +74,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 +104,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
@@ -131,12 +139,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);
@@ -164,7 +171,7 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer,
    //----------------------------------------------------------------------
 
    // make test
-   ostrstream str;
+   std::ostringstream str;
    retVal = t->RegressionTest(image,0.0,str);
    image->UnRegister(NULL);
 
@@ -172,7 +179,6 @@ int VTKWriteTest(vtkTesting *t,vtkImageViewer *viewer,
    {
       std::cerr << str.str();
    }
-   str.rdbuf()->freeze(1);
 
    if( retVal == vtkTesting::PASSED )
    {
@@ -197,8 +203,10 @@ int VTKTestWrite(int argc, char *argv[])
       }
    }
 
+//   GDCM_NAME_SPACE::Debug::DebugOn();
+
    int ret = 0;
-   vtkTestingt = vtkTesting::New();
+   vtkTesting *t = vtkTesting::New();
    vtkImageViewer *viewer;
    if( show )
       viewer = vtkImageViewer::New();
@@ -213,7 +221,7 @@ 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();
       if( viewer )
          viewer->Delete();
@@ -239,7 +247,7 @@ 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();
    if( viewer )