[Insight-users] ImageIOFactory problem

Miller, James V (GE, Research) millerjv at crd.ge.com
Wed Jan 17 15:23:33 EST 2007


Early DICOM files were missing a magic number (in current DICOM, each
image has the magic number DICM at a prescribed offset). The GDCM
library tries to guess whether a file is missing its magic number by
looking for other recognizable DICOM tags. The GDCM library is mistaking
your GIPL content as a valid DICOM tag.
 
Maybe Mattieu can modify the gdcm::Document::CanReadFile() method so
that this test checks more of the file to determine if it is a valid
DICOM file.  Or maybe ITK should only process modern DICOM files that
have the DICM magic number.
 
Jim

________________________________

From: insight-users-bounces+millerjv=crd.ge.com at itk.org
[mailto:insight-users-bounces+millerjv=crd.ge.com at itk.org] On Behalf Of
Stefan Klein
Sent: Wednesday, January 17, 2007 9:32 AM
To: Christoph Palm
Cc: insight-users at itk.org
Subject: Re: [Insight-users] ImageIOFactory problem


Hi Christoph:

the order is defined in the following file:

itkImageIOFactory.cxx

Regards!
Stefan.

At 14:27 17/01/07, Christoph Palm wrote:


	Hi Stefan,
	
	knowing this would have saved me at least one busy day :-(
	But thanks for pointing this out, I have now voted for the
	bug to give it a push after more than one year.
	
	But anyway, it could be a solution to throw the GDCM imageIO
	at the end of the possible imageIO list. Only if all other
formats
	are excluded, then the test on a Dicom image would be performed.
	Do you know by heart, where the sorting of this list is
determined?
	
	Regards
	
	Christoph
	
	On Wed, 2007-01-17 at 14:08 +0100, Stefan Klein wrote:
	> Hi Christoph, 
	> 
	> I had the same problem and have already entered it in the bug
tracker.
	> 
	> http://www.itk.org/Bug/bug.php?op=show&bugid=3689&pos=28
	> 
	> A workaround it to set the ImageIO explicitly:
	> 
	> imageReader->SetImageIO( GiplImageIO::New() )
	> 
	> but this is of course not very convenient if you want to
support
	> multiple image formats.
	> 
	> Regards!
	> Stefan
	> 
	> At 12:40 17/01/07, Christoph Palm wrote:
	> > Hi there,
	> > 
	> > I work with gipl images and had troubles reading some
	> > of them. After debugging it, it turns out to be a problem of
the
	> > ImageIOFactory, especially with the GDCM image reader. In
fact, the
	> > imageIOBase was by error assigned to GDCM instead of GIPL.
Then, of
	> > course, everything seriously went wrong and ended up with
false
	> > buffer
	> > allocations and a segmentation fault. The wrong assignmed
happend,
	> > because within the factory all possible reader are tested to
be the
	> > right one. The first one was rejected, because the filename
was not
	> > properly. Ok. The second one was the GDCM reader, where no
filename
	> > testing is applied. In gdcmDocument.cxx, function
CanReadFile
	> > the first Bytes are read in as Uint16 and tested to be some
numbers.
	> > If one of these numbers are found, a dicom image without
preample is
	> > assumed and the function returns true.
	> > 
	> > Unfortunately, by coincidence obviously my gipl images
showed one of
	> > these numbers, namely 1,  at the beginning of the file. In a
gipl
	> > image
	> > the header starts with UShort numbers for the dimensions. My
	> > dimensions
	> > for the error case were 256 256 1 1 (since gipl images are
always
	> > 4D).
	> > If I change the dimensions to 255 256 1 1, for example,
everything
	> > is
	> > fine. Now my question: how to solve this in the Insight
framework in
	> > a
	> > clean way? I am not really familiar with DICOM varieties. Is
it
	> > possible
	> > to add a fileEnding test to the GDCM reader? 
	> > 
	> > By the way, I also found a bug in writing gipl images. This
is
	> > already
	> > putted into the BugTracker. Is it possible, that I am the
one and
	> > only
	> > here who is working with GIPL images? ;-)
	> > 
	> > Regards
	> > 
	> > Christoph
	> > 
	> > 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070117/d68811aa/attachment.html


More information about the Insight-users mailing list