[Insight-users] itkAnalyzeImageIO bugs/problems

Darren Weber Darren . Weber at radiology . ucsf . edu
Thu, 31 Jul 2003 18:38:09 -0700


FYI,

there is a working group that is supposed to arrive at a consensus on
revisions to the Analyze 7.5 format that may accommodate various attempts to
use Analyze in 3rd party software, such as SPM.  See the 'Data Format
Working Group' links on:

http://nifti . nimh . nih . gov/

Best regards, Darren

author of matlab analyze tools in mri_toolbox at http://eeg . sf . net


----- Original Message ----- 
From: "Hans J. Johnson" <hjohnson at mail . psychiatry . uiowa . edu>
To: "Koen Van Leemput" <koen . vanleemput at hus . fi>
Cc: <insight-users at public . kitware . com>
Sent: Tuesday, July 29, 2003 7:51 AM
Subject: Re: [Insight-users] itkAnalyzeImageIO bugs/problems


> Keon,
>
> Upon further invesitigation into the 3rd problem, I would have to
> disagree with your diagnosis.  The suggestion you made would not be an
> acceptable thing to do because it would make using the field for it's
> intended purpose (i.e. holding a character string) potentially
> unsafe.    We may have to change this to make it work, but that would
> require some more testing.  If you have a small file in the SPM-Analyze
> file format, and a description of how you would like that field
> presented to you, I may be able to work through a solution for you.
>
> The m_hdr.hst.originator field is a 10byte field designated to hold a 10
> consecutive characters.  The extra copying into the temp variable is to
> explicitly add a null terminating character so that it may safely be put
> into a string.  (PS:  Your solution of string(varname,10) is more
> elegant, but I am not sure that it works under all compilers, and I
> don't want to add any more instability to code until after august 1st.)
>
> Is there a sentinal flag in the analyze header somewhere to specify that
> this is an SPM image?  If so, we could put something like the following
> in:
>
>
> if(this->m_hdr.hist.funused==SPM_SENTINAL_FLAG)
> {
> itk::EncapsulateMetaData<typename
SPM_TYPE>(thisDic,ITK_SPM_ORIGINFEILD_TAG,SPM_TYPE(this->m_hdr.hist.originat
or));
> }
> else
> {
> strncpy(temp,this->m_hdr.hist.originator,10);
> temp[10]='\0';
>
itk::EncapsulateMetaData<std::string>(thisDic,ITK_FileOriginator,std::string
(temp));
> }
>
> Regards,
> Hans J. Johnson
> hans-johnson at uiowa . edu
>
>
> PS: The other changes have already been made, and I will start testing
> them right now.  Hopefully they will make it into the cvs code yet
> today.  Since the bleeding edge version of ITK is undergoing many
> changes before august 1st, I would suggest that you only checkout the
> new Analyze files when they become available.
>
>
>
> > Problem 3: the FileOriginator field, (ab)used in SPM to store the
origin,
> > doesn't get read properly on my machine (gcc 3.2 on Linux Mandrake 9.1)
> >
> > itkAnalyzeImageIO.cxx, line 977-979
> >
> > strncpy(temp,this->m_hdr.hist.originator,10);
> > temp[10]='\0';
> >
itk::EncapsulateMetaData<std::string>(thisDic,ITK_FileOriginator,std::string
(temp));
> >
> > should be
> >
> >
itk::EncapsulateMetaData<std::string>(thisDic,ITK_FileOriginator,std::string
(this->m_hdr.hist.originator,10));
> >
> > This also applies to the many other fields in the MetaDataDictionary for
> > itkAnalyzeImageIO.
> >
> > --
> >
> > That's all ;-)
> >
> > - Koen
> >
> >
> >
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk . org
> > http://www . itk . org/mailman/listinfo/insight-users
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk . org
> http://www . itk . org/mailman/listinfo/insight-users
>