[ITK] [ITK-dev] image and deformation field physical space check

Bradley Lowekamp blowekamp at mail.nih.gov
Tue Nov 4 09:26:06 EST 2014


I agree that would be good.

The other thing which can be done concurrently is add the ImageToImageFilter::Get/SetGlobalDefault methods. Any one want to volunteer for that one?

Brad

On Nov 4, 2014, at 9:21 AM, brian avants <stnava at gmail.com> wrote:

> i guess the next step is to dig up a couple of examples of this behavior and post them somewhere.   
> 
> 
> brian
> 
> 
> 
> On Tue, Nov 4, 2014 at 9:14 AM, Bradley Lowekamp <blowekamp at mail.nih.gov> wrote:
> That is a question: why is an exact copy not happening? Is is due to runtime errors or accumulation of errors during IO?
> 
> Brad
> 
> 
> On Nov 4, 2014, at 3:51 AM, <M.Staring at lumc.nl> <M.Staring at lumc.nl> wrote:
> 
> > Hi all,
> >
> > Would it be possible to fix this issue by passing the physical space by reference, or by performing an exact copy?
> >
> > Regards, Marius
> >
> >> -----Original Message-----
> >> From: Insight-developers [mailto:insight-developers-bounces at itk.org] On
> >> Behalf Of Matt McCormick
> >> Sent: maandag 3 november 2014 18:39
> >> To: brian avants
> >> Cc: Insight-developers at itk.org
> >> Subject: Re: [ITK-dev] image and deformation field physical space check
> >>
> >> Hi Brian,
> >>
> >> Thanks for discussing this.
> >>
> >> I think a combination of fixing the underlying issue that is being brought up by
> >> the exception, relaxing the tolerance, and improving the documentation is a
> >> good approach.
> >>
> >> 2 cents,
> >> Matt
> >>
> >> On Mon, Nov 3, 2014 at 11:40 AM, brian avants <stnava at gmail.com> wrote:
> >>> This email is motivated by this issue:
> >>>
> >>> https://github.com/stnava/ANTs/issues/74
> >>>
> >>> but it is not isolated to ants.   Worth a read for additional context.
> >>>
> >>> ITK currently enforces a relatively strict check that image and
> >>> displacement fields "occupy the same physical space."  However, for
> >>> some unclear (to me) reasons, the direction matrices or origins of
> >>> images can lose precision when passing through ITK pipelines (
> >>> especially through resampling or resolution-changing filters ).  This
> >>> results in filters aborting and this can occur at various different
> >>> places in a complex series of ITK-based operations.
> >>>
> >>> My concern with this is that it can lead to a very severe loss of
> >>> productivity when this somewhat unpredictable error occurs.   For instance,
> >>> a user downloads a toolkit based on ITK ( itk-snap, ants, elastic,
> >>> brainsfit, joint label fusion, etc).   The user expects registration or
> >>> segmentation filters to "work well" especially when the data is of a
> >>> standard sort.   Then, after some oft-substantial execution time, this
> >>> mysterious error appears:
> >>>
> >>> itk::ERROR: ImageToImageFilter(0x7fb3b2307ac0): Inputs do not occupy
> >>> the same physical space!
> >>>
> >>>
> >>> While I am all for correctness, when the impact on productivity exceeds a
> >>> certain threshold, I think it is useful to bend the rules a bit.   Perhaps
> >>> one of these would improve the situation:
> >>>
> >>> 1)    change:
> >>>
> >>> ITKv4/Modules/Filtering/DisplacementField/include/itkDisplacementField
> >>> Transform.hxx
> >>>
> >>> and
> >>>
> >>> ITKv4/Modules/Core/Common/include/itkImageToImageFilter.hxx
> >>>
> >>> changing direction tolerance and coordinate tolerance to 1.e-4
> >>>
> >>> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/F
> >>> iltering/DisplacementField/include/itkDisplacementFieldTransform.hxx#L
> >>> 454-L457
> >>>
> >>> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/C
> >>> ore/Common/include/itkImageToImageFilter.hxx#L40-L41
> >>>
> >>> and change the documentation too:
> >>>
> >>> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/C
> >>> ore/Common/include/itkImageToImageFilter.h#L76-L87
> >>>
> >>> 2)  Change the exception to a warning.  This would at least allow
> >>> complex pipelines to execute while notifying the user of a possible issue.
> >>>
> >>> 3)  Document all of the places that the user/developer should call:
> >>>
> >>> Set/GetCoordinateTolerance  Set/GetDirectionTolerance  .
> >>>
> >>> This last solution would require adding Set/GetCoordinate and
> >>> Direction tolerance to:
> >>>
> >>> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/F
> >>> iltering/DisplacementField/include/itkDisplacementFieldTransform.h
> >>>
> >>> as well, for consistency.
> >>>
> >>> Anyway, I raise this issue b/c of the many man and computer hours lost
> >>> by this check.
> >>>
> >>> Not once has this check actually helped us, in any measurable way,
> >>> avoid errors.
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> 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.php
> >>>
> >>> 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://public.kitware.com/mailman/listinfo/insight-developers
> >>>
> >> _______________________________________________
> >> 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.php
> >>
> >> 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://public.kitware.com/mailman/listinfo/insight-developers
> > _______________________________________________
> > 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.php
> >
> > 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://public.kitware.com/mailman/listinfo/insight-developers
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20141104/328db9e9/attachment-0001.html>
-------------- next part --------------
_______________________________________________
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.php

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://public.kitware.com/mailman/listinfo/insight-developers


More information about the Community mailing list