X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmHeaderHelper.cxx;h=c8647471ceef57b6e3fc129fe8213291906c44ac;hb=46c9c13ea7d5b2a2fec304f12b3db77c8028caea;hp=a9af79bc99c887de0671b420297355f4b3102b6d;hpb=1a11accd11061d63d3c09db7b1445637207e81e4;p=gdcm.git diff --git a/src/gdcmHeaderHelper.cxx b/src/gdcmHeaderHelper.cxx index a9af79bc..c8647471 100644 --- a/src/gdcmHeaderHelper.cxx +++ b/src/gdcmHeaderHelper.cxx @@ -3,14 +3,12 @@ #include "gdcmHeaderHelper.h" #include "gdcmDirList.h" -#include "gdcmUtil.h" //for debug +#include "gdcmDebug.h" #include #include +#include //----------------------------------------------------------------------------- -// gdcmHeaderHelper -//----------------------------------------------------------------------------- -// Constructor / Destructor /** * \ingroup gdcmHeaderHelper * \brief constructor @@ -133,8 +131,11 @@ float gdcmHeaderHelper::GetXSpacing() { dbg.Verbose(0, "gdcmHeader::GetXSpacing: unfound Pixel Spacing (0028,0030)"); return 1.; } - if( sscanf( StrSpacing.c_str(), "%f\\%f", &yspacing, &xspacing) != 2) - return 0.; + int nbValues; + if( (nbValues = sscanf( StrSpacing.c_str(), "%f\\%f", &yspacing, &xspacing)) != 2) { + if (nbValues==1) // if single value is found, xspacing is defaulted to yspacing + return yspacing; + } if (xspacing == 0.) { dbg.Verbose(0, "gdcmHeader::GetYSpacing: gdcmData/CT-MONO2-8-abdo.dcm problem"); // seems to be a bug in the header ... @@ -150,20 +151,14 @@ float gdcmHeaderHelper::GetXSpacing() { * @return Y dimension of a pixel */ float gdcmHeaderHelper::GetYSpacing() { - float xspacing, yspacing; + float yspacing; std::string StrSpacing = GetEntryByNumber(0x0028,0x0030); if (StrSpacing == GDCM_UNFOUND) { dbg.Verbose(0, "gdcmHeader::GetYSpacing: unfound Pixel Spacing (0028,0030)"); return 1.; } - if( sscanf( StrSpacing.c_str(), "%f\\%f", &yspacing, &xspacing) != 2) - return 0.; - if (xspacing == 0.) { - dbg.Verbose(0, "gdcmHeader::GetYSpacing: gdcmData/CT-MONO2-8-abdo.dcm problem"); - // seems to be a bug in the header ... - sscanf( StrSpacing.c_str(), "%f\\0\\%f", &yspacing, &xspacing); - } + sscanf( StrSpacing.c_str(), "%f", &yspacing); return yspacing; }