From f2806c140be3061a45b62c4d3f3ef8870cb8882a Mon Sep 17 00:00:00 2001 From: regrain Date: Fri, 10 Dec 2004 08:34:06 +0000 Subject: [PATCH] * vtk/vtkGdcmWriter.cxx, Example/WriteDicomSimple.cxx : add comments for each added entry in the header. Replace the 'Planes' field by the 'Number of Frames' field -- BeNours --- ChangeLog | 5 +++++ Example/WriteDicomSimple.cxx | 22 +++++++++++----------- vtk/vtkGdcmWriter.cxx | 33 +++++++++++++++++---------------- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea4843ed..1e2662ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-12-10 Benoit Regrain + * vtk/vtkGdcmWriter.cxx, Example/WriteDicomSimple.cxx : add comments for + each added entry in the header. Replace the 'Planes' field by the 'Number + of Frames' field + 2004-12-09 Benoit Regrain * vtk/vtkGdcmWriter.[h|cxx] : now can write stack of images. * vtk/vtkWriteDicom.cxx : can write 2D stack or 3D image diff --git a/Example/WriteDicomSimple.cxx b/Example/WriteDicomSimple.cxx index 8503e531..8ffbade3 100644 --- a/Example/WriteDicomSimple.cxx +++ b/Example/WriteDicomSimple.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: WriteDicomSimple.cxx,v $ Language: C++ - Date: $Date: 2004/12/09 11:31:52 $ - Version: $Revision: 1.1 $ + Date: $Date: 2004/12/10 08:34:07 $ + Version: $Revision: 1.2 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -62,39 +62,39 @@ int main(int argc, char* argv[]) // Set the image size str.str(""); str << SIZE_X; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0011); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0011); // Columns str.str(""); str << SIZE_Y; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0010); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0010); // Rows // Set the pixel type str.str(""); str << COMPONENT_SIZE * 8; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0100); - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0101); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0100); // Bits Allocated + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0101); // Bits Stored str.str(""); str << COMPONENT_SIZE * 8 - 1; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0102); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0102); // High Bit // Set the pixel representation str.str(""); str << "0"; // Unsigned - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0103); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0103); // Pixel Representation // Set the samples per pixel str.str(""); str << COMPONENT; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0002); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0002); // Samples per Pixel // Set the Window / Level str.str(""); str << COLOR_WINDOW; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x1051); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x1051); // Window Width str.str(""); str << COLOR_LEVEL; - header->ReplaceOrCreateByNumber(str.str(),0x0028,0x1050); + header->ReplaceOrCreateByNumber(str.str(),0x0028,0x1050); // Window Center if( !header->IsReadable() ) { diff --git a/vtk/vtkGdcmWriter.cxx b/vtk/vtkGdcmWriter.cxx index c9843e32..7d6a697c 100644 --- a/vtk/vtkGdcmWriter.cxx +++ b/vtk/vtkGdcmWriter.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: vtkGdcmWriter.cxx,v $ Language: C++ - Date: $Date: 2004/12/09 17:08:36 $ - Version: $Revision: 1.6 $ + Date: $Date: 2004/12/10 08:34:08 $ + Version: $Revision: 1.7 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -26,7 +26,7 @@ #include #include -vtkCxxRevisionMacro(vtkGdcmWriter, "$Revision: 1.6 $"); +vtkCxxRevisionMacro(vtkGdcmWriter, "$Revision: 1.7 $"); vtkStandardNewMacro(vtkGdcmWriter); //----------------------------------------------------------------------------- @@ -106,28 +106,29 @@ void SetImageInformation(gdcm::File *file,vtkImageData *image) str.str(""); str << dim[0]; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0011); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0011); // Columns str.str(""); str << dim[1]; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0010); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0010); // Rows if(dim[2]>1) { str.str(""); str << dim[2]; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0012); + //file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0012); // Planes + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0008); // Number of Frames } // Pixel type str.str(""); str << image->GetScalarSize()*8; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0100); - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0101); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0100); // Bits Allocated + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0101); // Bits Stored str.str(""); str << image->GetScalarSize()*8-1; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0102); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0102); // High Bit // Pixel Repr // FIXME : what do we do when the ScalarType is @@ -144,39 +145,39 @@ void SetImageInformation(gdcm::File *file,vtkImageData *image) { str << "1"; // Signed } - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0103); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0103); // Pixel Representation // Samples per pixel str.str(""); str << image->GetNumberOfScalarComponents(); - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0002); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0002); // Samples per Pixel // Spacing double *sp = image->GetSpacing(); str.str(""); str << sp[0] << "\\" << sp[1]; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0030); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0030); // Pixel Spacing str.str(""); str << sp[2]; - file->ReplaceOrCreateByNumber(str.str(),0x0018,0x0088); + file->ReplaceOrCreateByNumber(str.str(),0x0018,0x0088); // Spacing Between Slices // Origin double *org = image->GetOrigin(); str.str(""); str << org[0] << "\\" << org[1] << "\\" << org[2]; - file->ReplaceOrCreateByNumber(str.str(),0x0020,0x0032); + file->ReplaceOrCreateByNumber(str.str(),0x0020,0x0032); // Image Position Patient // Window / Level double *rng=image->GetScalarRange(); str.str(""); str << rng[1]-rng[0]; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x1051); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x1051); // Window Width str.str(""); str << (rng[1]+rng[0])/2.0; - file->ReplaceOrCreateByNumber(str.str(),0x0028,0x1050); + file->ReplaceOrCreateByNumber(str.str(),0x0028,0x1050); // Window Center // Pixels unsigned char *data; -- 2.48.1