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

Bradley Lowekamp blowekamp at mail.nih.gov
Tue Nov 4 09:14:51 EST 2014


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



More information about the Insight-developers mailing list