From: malaterre Date: Wed, 11 May 2005 18:32:17 +0000 (+0000) Subject: ENH: Should now support image with space in the origin X-Git-Tag: Version1.2.bp~723 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=2ffeaa9f4fd8aca8296266f15a6db6919d53a7e3;p=gdcm.git ENH: Should now support image with space in the origin --- diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 61c2652e..49305ccf 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -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.");