[Insight-developers] Multi-resolution pyramid and multi-resolution PDE deformable registration small issues

Hans Johnson hans-johnson at uiowa.edu
Thu Mar 5 11:50:29 EST 2009


The behavior of this class changed last fall.  There was a 2-3 week period
of discussion on the mailing list, and Bill Lorensen, Luis Ibanez, and I all
worked on developing failing test, and resolving this bug until the tests
passed.  It affected the ShrinkImage filter and the
MultiResolutionImageFilter.



Hans
   
-- 
Hans J. Johnson, Ph.D.
Hans-johnson at uiowa.edu

278 GH
The University of Iowa
Iowa City, IA 52241
(319) 353 8587


> From: Stephen Aylward <Stephen.Aylward at Kitware.com>
> Date: Thu, 5 Mar 2009 10:33:34 -0500
> To: Bradley Lowekamp <blowekamp at mail.nih.gov>
> Cc: Tom Vercauteren <tom.vercauteren at m4x.org>, Hans Johnson
> <hans-johnson at uiowa.edu>, ITK <insight-developers at itk.org>
> Subject: Re: [Insight-developers] Multi-resolution pyramid and
> multi-resolution PDE deformable registration small issues
> 
> Has the behavior of this class been changing recently?
> 
> Do we need to take away some CVS write accesses? :)
> 
> s
> 
> On Thu, Mar 5, 2009 at 10:08 AM, Bradley Lowekamp
> <blowekamp at mail.nih.gov> wrote:
>> Please let me know when the default behavior changes, so that I can reverify
>> that my registration programs still work. As I am registering
>> noisy microscopy data, I am likely dependent on this smoothing.
>> I do think these classes need a close look. They are not
>> even consistent with there documentation. MultiResolutionPyramidImageFilter
>> claims it can stream but it clearly can not!!!  And the change in the
>> behavior from using ShrinkImageFilter to linear interpolate
>> ResampleImageFilter was significant too! I just have some gripes :)
>> I am agreeing with Stephen on this one. The subtle changes to this class are
>> causing my registrations to change!
>> I much prefer to get compiler errors when function names change so I know
>> behaviors have changed :)
>> Brad
>> 
>> On Mar 5, 2009, at 9:34 AM, Tom Vercauteren wrote:
>> 
>> Thanks for the feedback.
>> 
>> Stephen: Just like Gaetan, I don't really the option of having a wrong
>> default behavior. I consider the over-smoothing and inconsistency
>> between MultiResolutionPyramidImageFilter and
>> RecursiveMultiResolutionPyramidImageFilter to be a bug. Therefore,
>> correcting it shouldn't be seen as breaking backwards compatibility.
>> But of course that's my point of view.
>> 
>> Also, since it is possible for the user to change the multi-resolution
>> pyramid in MultiResolutionPDEDeformableRegistration, I don't gain much
>> if the default bebahior of MultiResolutionPyramidImageFilter stays the
>> same. I'd rather not modify ITK and tweak the multi-resolution pyramid
>> in MultiResolutionPDEDeformableRegistration from my application.
>> 
>> 
>> Hans: I have looked at the patch you mention:
>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/Algorithms/itkMultiResolut
>> ionPyramidImageFilter.txx?root=Insight&r1=1.29&r2=1.25
>> 
>> Is there any reason why the smoother changed from
>>  smoother->SetUseImageSpacing( false );
>> to
>>  smoother->SetUseImageSpacing( true );
>> 
>> It seems like "smoother->SetUseImageSpacing( false );" should be the
>> right version to use as the sigma is computed only from the pyramid
>> schedule.
>> 
>> Apart from that fixing this in
>> RecursiveMultiResolutionPyramidImageFilter shouldn't be a problem.
>> 
>> Tom
>> 
>> On Thu, Mar 5, 2009 at 15:06, Hans Johnson <hans-johnson at uiowa.edu> wrote:
>> 
>> Tom,
>> 
>> In addition to this behavior enhancement, it is also necessary to address a
>> 
>> bug in the Recursive MultiResolutionPyramidImageFilter:
>> 
>> http://public.kitware.com/Bug/view.php?id=8482
>> 
>> I am in favor of changing to this default after this bug is fixed (which
>> 
>> should then preserve backwards compatibility with programs that depend on
>> 
>> the correct behavior implemented in bug fixes for
>> 
>> MultiResolutionPyramidImageFilter in December 2008).
>> 
>> 
>> 
>> Hans
>> 
>> --
>> 
>> Hans J. Johnson, Ph.D.
>> 
>> Hans-johnson at uiowa.edu
>> 
>> 278 GH
>> 
>> The University of Iowa
>> 
>> Iowa City, IA 52241
>> 
>> (319) 353 8587
>> 
>> 
>> From: Stephen Aylward <Stephen.Aylward at Kitware.com>
>> 
>> Date: Thu, 5 Mar 2009 08:11:35 -0500
>> 
>> To: Tom Vercauteren <tom.vercauteren at m4x.org>
>> 
>> Cc: ITK <insight-developers at itk.org>
>> 
>> Subject: Re: [Insight-developers] Multi-resolution pyramid and
>> 
>> multi-resolution PDE deformable registration small issues
>> 
>> How about making this an option?
>> 
>> The default behavior can be unchanged (heck, could even throw a
>> 
>> deprecated flag and explain why).   If the option is set then the
>> 
>> deprecated flag isn't thrown and you get the behaviour you'd like.
>> 
>> Option should be controlled by a member function (NOT a cmake option).
>> 
>>   Perhaps something like: AlwaysSmoothOutput or OverSmoothOutput or
>> 
>> some such...
>> 
>> s
>> 
>> On Thu, Mar 5, 2009 at 4:12 AM, Tom Vercauteren <tom.vercauteren at m4x.org>
>> 
>> wrote:
>> 
>> Hi all,
>> 
>> I just saw a few weird things in some multi-resolution objects.
>> 
>> First of all, the MultiResolutionPyramidImageFilter will always
>> 
>> produce a blurred image even with an all one schedule. This is because
>> 
>> the input it always smoothed to produce the output. If the schedule at
>> 
>> a given level is all one, the sigma of the Gaussian will be 0.5.
>> 
>> This case is better handled in
>> 
>> RecursiveMultiResolutionPyramidImageFilter. In that class, if the
>> 
>> schedule is all one, the output will only be a casted version of the
>> 
>> input. This makes more sense to me.
>> 
>> Would anyone mind if I changed the behavior of
>> 
>> MultiResolutionPyramidImageFilter to perform the same operation as
>> 
>> RecursiveMultiResolutionPyramidImageFilter in the case of all one
>> 
>> schedule?
>> 
>> 
>> Also it seems that RecursiveMultiResolutionPyramidImageFilter should
>> 
>> be the default image pyramid class for most applications. It is more
>> 
>> efficient than MultiResolutionPyramidImageFilter when the schedule is
>> 
>> downward divisible and falls back to MultiResolutionPyramidImageFilter
>> 
>> when it is not.
>> 
>> Would anyone mind if I changed the default image pyramid filter in
>> 
>> MultiResolutionPDEDeformableRegistration to be
>> 
>> RecursiveMultiResolutionPyramidImageFilter instead of
>> 
>> MultiResolutionPyramidImageFilter?
>> 
>> Regards,
>> 
>> Tom
>> 
>> _______________________________________________
>> 
>> Powered by www.kitware.com
>> 
>> Visit other Kitware open-source projects at
>> 
>> http://www.kitware.com/opensource/opensource.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
>> 
>> 
>> 
>> 
>> --
>> 
>> Stephen R. Aylward, Ph.D.
>> 
>> Chief Medical Scientist
>> 
>> Kitware, Inc. - North Carolina Office
>> 
>> http://www.kitware.com
>> 
>> (518) 371-3971 x300
>> 
>> _______________________________________________
>> 
>> Powered by www.kitware.com
>> 
>> Visit other Kitware open-source projects at
>> 
>> http://www.kitware.com/opensource/opensource.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
>> 
>> 
>> 
>> Notice: This UI Health Care e-mail (including attachments) is covered by the
>> Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential
>> and may be legally privileged.  If you are not the intended recipient, you
>> are hereby notified that any retention, dissemination, distribution, or
>> copying of this communication is strictly prohibited.  Please reply to the
>> sender that you have received the message in error, then delete it.  Thank
>> you.
>> 
>> 
>> 
>> _______________________________________________
>> Powered by www.kitware.com
>> 
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.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
>> 
>> ========================================================
>> 
>> Bradley Lowekamp
>> 
>> Lockheed Martin Contractor for
>> 
>> Office of High Performance Computing and Communications
>> 
>> National Library of Medicine
>> 
>> blowekamp at mail.nih.gov
>> 
>> 
> 
> 
> 
> -- 
> Stephen R. Aylward, Ph.D.
> Chief Medical Scientist
> Kitware, Inc. - North Carolina Office
> http://www.kitware.com
> (518) 371-3971 x300



More information about the Insight-developers mailing list