[Insight-developers] backward compatibility issue with newstreaming support

M.Staring at lumc.nl M.Staring at lumc.nl
Fri Dec 11 10:18:27 EST 2009


First double-check and then send a mail :-)

It appears that the member m_IORegion already existed, so the reason why
we have this issue is somewhat different.
Maybe someone can shed some light?

But the issue is still there and the proposed fix still seems to hold.

Marius

> -----Original Message-----
> From: insight-developers-bounces at itk.org 
> [mailto:insight-developers-bounces at itk.org] On Behalf Of 
> M.Staring at lumc.nl
> Sent: vrijdag 11 december 2009 16:01
> To: insight-developers at itk.org
> Subject: [Insight-developers] backward compatibility issue 
> with newstreaming support
> 
> Dear developers,
> 
> In our institute (LKEB) we sometimes use the ITK image IO classes
> without using the itk::ImageFileReader. (This way we can e.g. directly
> read in the data buffer into our own image type: lkebImage.)
> 
> We recently updated the underlying ITK to a more recent version, and
> found out that it did not work anymore. The reason it does 
> not work are
> the changes that were made to support streaming. A new member 
> m_IORegion
> was added to the class ImageIOBase; it's constructor initializes that
> member to a 2D region of size [0 0]. The framework now 
> expects that this
> m_IORegion is set externally, which in the ITK is done in the
> ImageFileReader (line 389 of the txx). However, we do not use the
> ImageFileReader and therefore our code breaks.
> 
> To fix this issue I would expect that the m_IORegion is by default set
> to the largest possible region (or the requested region) and 
> not to size
> 0. I'm not sure if it is the best place to fix this, but this could be
> fixed by adapting the Read() or 
> ReadImageInformation()-functions of all
> ImageIO's that support streaming. For example 
> MetaImageIO::Read() could
> check if m_IORegion was manually set, and if not set it to 
> the requested
> region. Something like:
> 
> if ( !m_IORegionManuallySet ) // or: if ( m_IORegion.GetSize() == 0 )
> {
>   m_IORegion = m_RequestedRegion; // or: m_IORegion =
> m_LargestPossibleRegion;
> }
> 
> and then proceed ...
> 
> What do you think ?
> 
> Regards,
> 
> Marius
> 
> 
> Marius Staring, PhD
> Division of Image Processing (LKEB)
> Department of Radiology
> Leiden University Medical Center
> PO Box 9600, 2300 RC Leiden, The Netherlands
> phone: +31 (0)71 526 1106, fax: +31 (0)71 526 6801
> m.staring at lumc.nl
>  
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
> 


More information about the Insight-developers mailing list