]> Creatis software - gdcm.git/commitdiff
ENH: Should now support image with space in the origin
authormalaterre <malaterre>
Wed, 11 May 2005 18:32:17 +0000 (18:32 +0000)
committermalaterre <malaterre>
Wed, 11 May 2005 18:32:17 +0000 (18:32 +0000)
src/gdcmFile.cxx

index 61c2652e31592ddfbb59e5c57f632ee77f8b1dec..49305ccf0f721ba8890ef9d6dd3cf176317f7a6e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/05/11 14:40:57 $
-  Version:   $Revision: 1.236 $
+  Date:      $Date: 2005/05/11 18:32:17 $
+  Version:   $Revision: 1.237 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -381,7 +381,7 @@ float File::GetXSpacing()
 
    int nbValues;
    if( ( nbValues = sscanf( strSpacing.c_str(), 
-         "%f\\%f", &yspacing, &xspacing)) != 2 )
+         "%f \\%f ", &yspacing, &xspacing)) != 2 )
    {
       // if no values, xspacing is set to 1.0
       if( nbValues == 0 )
@@ -405,7 +405,7 @@ float File::GetXSpacing()
    {
       gdcmWarningMacro("gdcmData/CT-MONO2-8-abdo.dcm-like problem");
       // seems to be a bug in the header ...
-      nbValues = sscanf( strSpacing.c_str(), "%f\\0\\%f", &yspacing, &xspacing);
+      nbValues = sscanf( strSpacing.c_str(), "%f \\0\\%f ", &yspacing, &xspacing);
       gdcmAssertMacro( nbValues == 2 );
    }
 
@@ -429,7 +429,7 @@ float File::GetYSpacing()
     }
 
    // if sscanf cannot read any float value, it won't affect yspacing
-   int nbValues = sscanf( strSpacing.c_str(), "%f", &yspacing);
+   int nbValues = sscanf( strSpacing.c_str(), "%f ", &yspacing);
 
    // if no values, yspacing is set to 1.0
    if( nbValues == 0 )
@@ -505,7 +505,7 @@ float File::GetXOrigin()
       }
    }
 
-   if( sscanf( strImPos.c_str(), "%f\\%f\\%f", &xImPos, &yImPos, &zImPos) != 3 )
+   if( sscanf( strImPos.c_str(), "%f \\%f \\%f ", &xImPos, &yImPos, &zImPos) != 3 )
    {
       return 0.;
    }
@@ -535,7 +535,7 @@ float File::GetYOrigin()
       }  
    }
 
-   if( sscanf( strImPos.c_str(), "%f\\%f\\%f", &xImPos, &yImPos, &zImPos) != 3 )
+   if( sscanf( strImPos.c_str(), "%f \\%f \\%f ", &xImPos, &yImPos, &zImPos) != 3 )
    {
       return 0.;
    }
@@ -558,7 +558,7 @@ float File::GetZOrigin()
 
    if ( strImPos != GDCM_UNFOUND )
    {
-      if( sscanf( strImPos.c_str(), "%f\\%f\\%f", &xImPos, &yImPos, &zImPos) != 3)
+      if( sscanf( strImPos.c_str(), "%f \\%f \\%f ", &xImPos, &yImPos, &zImPos) != 3)
       {
          gdcmWarningMacro( "Wrong Image Position Patient (0020,0032)");
          return 0.;  // bug in the element 0x0020,0x0032
@@ -573,7 +573,7 @@ float File::GetZOrigin()
    if ( strImPos != GDCM_UNFOUND )
    {
       if( sscanf( strImPos.c_str(), 
-          "%f\\%f\\%f", &xImPos, &yImPos, &zImPos ) != 3 )
+          "%f \\%f \\%f ", &xImPos, &yImPos, &zImPos ) != 3 )
       {
          gdcmWarningMacro( "Wrong Image Position (RET) (0020,0030)");
          return 0.;  // bug in the element 0x0020,0x0032
@@ -587,7 +587,7 @@ float File::GetZOrigin()
    std::string strSliceLocation = GetEntryValue(0x0020,0x1041); // for *very* old ACR-NEMA images
    if ( strSliceLocation != GDCM_UNFOUND )
    {
-      if( sscanf( strSliceLocation.c_str(), "%f", &zImPos) != 1)
+      if( sscanf( strSliceLocation.c_str(), "%f ", &zImPos) != 1)
       {
          gdcmWarningMacro( "Wrong Slice Location (0020,1041)");
          return 0.;  // bug in the element 0x0020,0x1041
@@ -602,7 +602,7 @@ float File::GetZOrigin()
    std::string strLocation = GetEntryValue(0x0020,0x0050);
    if ( strLocation != GDCM_UNFOUND )
    {
-      if( sscanf( strLocation.c_str(), "%f", &zImPos) != 1)
+      if( sscanf( strLocation.c_str(), "%f ", &zImPos) != 1)
       {
          gdcmWarningMacro( "Wrong Location (0020,0050)");
          return 0.;  // bug in the element 0x0020,0x0050
@@ -632,7 +632,7 @@ void File::GetImageOrientationPatient( float iop[6] )
    // 0020 0037 DS REL Image Orientation (Patient)
    if ( (strImOriPat = GetEntryValue(0x0020,0x0037)) != GDCM_UNFOUND )
    {
-      if( sscanf( strImOriPat.c_str(), "%f\\%f\\%f\\%f\\%f\\%f", 
+      if( sscanf( strImOriPat.c_str(), "%f \\ %f \\%f \\%f \\%f \\%f ", 
           &iop[0], &iop[1], &iop[2], &iop[3], &iop[4], &iop[5]) != 6 )
       {
          gdcmWarningMacro( "Wrong Image Orientation Patient (0020,0037). Less than 6 values were found." );
@@ -642,7 +642,7 @@ void File::GetImageOrientationPatient( float iop[6] )
    // 0020 0035 DS REL Image Orientation (RET)
    else if ( (strImOriPat = GetEntryValue(0x0020,0x0035)) != GDCM_UNFOUND )
    {
-      if( sscanf( strImOriPat.c_str(), "%f\\%f\\%f\\%f\\%f\\%f", 
+      if( sscanf( strImOriPat.c_str(), "%f \\ %f \\%f \\%f \\%f \\%f ", 
           &iop[0], &iop[1], &iop[2], &iop[3], &iop[4], &iop[5]) != 6 )
       {
          gdcmWarningMacro( "wrong Image Orientation Patient (0020,0035). Less than 6 values were found." );
@@ -677,7 +677,7 @@ int File::GetBitsStored()
 int File::GetBitsAllocated()
 {
    std::string strSize = GetEntryValue(0x0028,0x0100);
-   if ( strSize == GDCM_UNFOUND )
+   if ( strSize == GDCM_UNFOUND  )
    {
       gdcmWarningMacro( "(0028,0100) is supposed to be mandatory");
       return 0; // It's supposed to be mandatory
@@ -1016,7 +1016,7 @@ float File::GetRescaleIntercept()
    const std::string &strRescInter = GetEntryValue(0x0028,0x1052);
    if ( strRescInter != GDCM_UNFOUND )
    {
-      if( sscanf( strRescInter.c_str(), "%f", &resInter) != 1 )
+      if( sscanf( strRescInter.c_str(), "%f ", &resInter) != 1 )
       {
          // bug in the element 0x0028,0x1052
          gdcmWarningMacro( "Rescale Intercept (0028,1052) is empty." );
@@ -1037,7 +1037,7 @@ float File::GetRescaleSlope()
    std::string strRescSlope = GetEntryValue(0x0028,0x1053);
    if ( strRescSlope != GDCM_UNFOUND )
    {
-      if( sscanf( strRescSlope.c_str(), "%f", &resSlope) != 1)
+      if( sscanf( strRescSlope.c_str(), "%f ", &resSlope) != 1)
       {
          // bug in the element 0x0028,0x1053
          gdcmWarningMacro( "Rescale Slope (0028,1053) is empty.");