X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Testing%2FTestCopyRescaleDicom.cxx;h=58491763c3c61c91b099360d6a5a39039b9af670;hb=d92b9d9e464607d503446b6decf0713c6a712638;hp=907dad9b54eaaaee5ecfc7224b8646d423d7815e;hpb=de5fc413dc579fc61f7e04397efd1dc1087fe3cf;p=gdcm.git diff --git a/Testing/TestCopyRescaleDicom.cxx b/Testing/TestCopyRescaleDicom.cxx index 907dad9b..58491763 100644 --- a/Testing/TestCopyRescaleDicom.cxx +++ b/Testing/TestCopyRescaleDicom.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: TestCopyRescaleDicom.cxx,v $ Language: C++ - Date: $Date: 2005/04/19 10:02:40 $ - Version: $Revision: 1.18 $ + Date: $Date: 2005/10/18 08:35:46 $ + Version: $Revision: 1.21 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -17,8 +17,11 @@ =========================================================================*/ #include "gdcmFile.h" #include "gdcmFileHelper.h" -#include "gdcmValEntry.h" -#include "gdcmBinEntry.h" +#include "gdcmDataEntry.h" + +#include +#include +#include // for std::ios::left, ... //Generated file: #include "gdcmDataImages.h" @@ -68,10 +71,13 @@ int CopyRescaleDicom(std::string const &filename, return 1; } } - + //////////////// Step 1: std::cout << " 1..."; - gdcm::File originalF = gdcm::File( filename ); + gdcm::File originalF = gdcm::File( ); + originalF.SetFileName( filename ); + originalF.Load(); + gdcm::File copyF = gdcm::File( ); //First of all copy the file, field by field @@ -82,17 +88,11 @@ int CopyRescaleDicom(std::string const &filename, gdcm::DocEntry *d = originalF.GetFirstEntry(); while(d) { - if ( gdcm::BinEntry *b = dynamic_cast(d) ) - { - copyF.InsertBinEntry( b->GetBinArea(),b->GetLength(), - b->GetGroup(),b->GetElement(), - b->GetVR() ); - } - else if ( gdcm::ValEntry *v = dynamic_cast(d) ) - { - copyF.InsertValEntry( v->GetValue(), - v->GetGroup(),v->GetElement(), - v->GetVR() ); + if ( gdcm::DataEntry *de = dynamic_cast(d) ) + { + copyF.InsertEntryBinArea( de->GetBinArea(),de->GetLength(), + de->GetGroup(),de->GetElement(), + de->GetVR() ); } else { @@ -114,10 +114,10 @@ int CopyRescaleDicom(std::string const &filename, if( bitsStored == "16" ) { std::cout << "Rescale..."; - copyF.InsertValEntry( "8", 0x0028, 0x0100); // Bits Allocated - copyF.InsertValEntry( "8", 0x0028, 0x0101); // Bits Stored - copyF.InsertValEntry( "7", 0x0028, 0x0102); // High Bit - copyF.InsertValEntry( "0", 0x0028, 0x0103); // Pixel Representation + copyF.InsertEntryString( "8", 0x0028, 0x0100); // Bits Allocated + copyF.InsertEntryString( "8", 0x0028, 0x0101); // Bits Stored + copyF.InsertEntryString( "7", 0x0028, 0x0102); // High Bit + copyF.InsertEntryString( "0", 0x0028, 0x0103); // Pixel Representation // We assume the value were from 0 to uint16_t max rescaleSize = dataSize / 2; @@ -267,6 +267,11 @@ int TestCopyRescaleDicom(int argc, char *argv[]) << " match (as expanded by gdcm)." << std::endl; std::cout << std::endl; + + clock_t r1,r2, r3,r4; + struct tms tms1,tms2, tms3,tms4; + + r3 = times(&tms3); int i =0; int retVal = 0; //by default this is an error while( gdcmDataImages[i] != 0 ) @@ -277,13 +282,34 @@ int TestCopyRescaleDicom(int argc, char *argv[]) std::string output = "output.dcm"; + r1 = times(&tms1); if( CopyRescaleDicom( filename, output ) != 0 ) { retVal++; } + r2 = times(&tms2); + + std::cout + << std::setw(150-strlen(gdcmDataImages[i])) + << gdcmDataImages[i] << " user time: " + << (long) ((tms2.tms_utime) - (tms1.tms_utime)) + << " system time: " + << (long) ((tms2.tms_stime) - (tms1.tms_stime)) + << "\t elapsed time: " << r2 - r1 + << std::endl; i++; } + r4 = times(&tms4); + + std::cout + << std::setw(150-strlen("Gross Total")) << " --> " + << "Gross Total" << " user time: " + << (long) ((tms4.tms_utime) - (tms3.tms_utime)) + << " system time: " + << (long) ((tms4.tms_stime) - (tms3.tms_stime)) + << "\t elapsed time: " << (long) (r4 - r3) + << std::endl; return retVal; }