]> Creatis software - clitk.git/blobdiff - common/clitkDicomRTDoseIO.cxx
invert VF on given image grid
[clitk.git] / common / clitkDicomRTDoseIO.cxx
index 02d953e3a74eebadba37025b7d510f8257691437..960cb1d72cb2a50f8905fd62b79d4abefafe7a20 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to:
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
@@ -14,7 +14,7 @@
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-======================================================================-====*/
+===========================================================================**/
 
 // clitk include
 #include "clitkDicomRTDoseIO.h"
 
 // itk include
 #if GDCM_MAJOR_VERSION == 2
+// IMPLEMENTATION NOTE:
+// The following has been done without the use of vtkGDCMImageReader which directly
+// handle RTDOSE image. Another approach would have been to use gdcm::ImageReader
+// which also properly recognize RTDOSE
   #include <gdcmReader.h>
   #include <gdcmAttribute.h>
 #else
@@ -147,7 +151,7 @@ void clitk::DicomRTDoseIO::ReadImageInformation()
   while (1) {
     int len;
     gfov = (double*) realloc (gfov, (gfov_len + 1) * sizeof(double));
-    rc = sscanf (gfov_str, "%g%n", &gfov[gfov_len], &len);
+    rc = sscanf (gfov_str, "%lf%n", &gfov[gfov_len], &len);
     if (rc != 1) {
       break;
     }
@@ -278,6 +282,9 @@ void clitk::DicomRTDoseIO::Read(void * buffer)
 #if GDCM_MAJOR_VERSION == 2
   gdcm::Image &i = m_GdcmImageReader.GetImage();
   i.GetBuffer((char*)buffer);
+  // WARNING: GetBuffer return the pixel values as stored on disk not the real pixel value
+  // we still need to multiply by m_DoseScaling
+  // An alternate solution would be to use vtkGDCMImageReader...
 #else
   float *img = (float*) buffer;