[Insight-users] Re: Jacobian determinant image of the deformation
field
Tom Vercauteren
tom.vercauteren at m4x.org
Wed Jul 11 12:41:09 EDT 2007
Hi Luis,
That make perfect sense to me. A note could also be added to the
documentation of DeformationFieldJacobianDeterminantFilter to
emphasize the fact that this filter does not compute the Jacobian of
the spatial transformation and that in most cases what a user needs is
WarpJacobianDeterminantFilter. This should help confuse less users :)
Best,
Tom
On 7/11/07, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>
> Hi Mathieu, Tom,
>
> Thanks a lot for pointing out this problem.
>
> We are trying to figure out what is the best way to fix this issue.
>
>
>
> There seems to be three issues here:
>
>
> 1) Mismatch documentation between the filter
> and its actual computation
>
> 2) Whether the filter is intended for
>
> Deformation field versus Transformation
>
> Deformation field will have zeros for an identity transformation
> while the Transformation will have an identity matrix.
>
> 3) Misnaming of the filter.
>
>
> ---
>
> About (1), we should just remove the comment about adding 1.0
> to the output, since it is not really equivalent to adding
> the Identity matrix to the Jacobian before computing the
> determinant.
>
> From Tom comment, it seems that the filter name is actually
> correct, so (3) may not be an issue.
>
> The filter is indeed intended for a Deformation field and
> not for a transformation. This seems to be clear in the
> documentation.
>
>
> However, an additional filter is needed where an Identity
> matrix is added to the Jacobian before computing the
> determinant.
>
> We could factorize the common code of both filters, and
> only have to overload the method:
>
>
> EvaluateAtNeighborhood()
>
>
> So, here are the proposed action items:
>
>
> 1) Create a base class X with the current code of the
> DeformationFieldJacobianDeterminantFilter.
>
> 2) Add a class WarpJacobianDeterminantFilter that derives
> from X, and overload EvaluateAtNeighborhood().
>
> 3) Make DeformationFieldJacobianDeterminantFilter derive
> from X too and overload EvaluateAtNeighborhood().
>
> 4) Remove the comment about adding 1.0 from the documentation
> of the DeformationFieldJacobianDeterminantFilter.
>
>
> If that make sense we can log this as a feature request/bug fix
> in the phpBugTracker.
>
>
>
> Please let us know what you think,
>
>
>
> Thanks
>
>
>
> Luis
>
>
> ----------------------
> Tom Vercauteren wrote:
> > Hi Mathieu,
> >
> > Just my two cents about it. I do agree with you that the current
> > implementation is not computing a really meaningful quantity. However,
> > the current name is misleading. Without adding an Id matrix, it
> > actually computes the Jacobian of the deformation field, but what we
> > usually need is the Jacobian of the spatial transformation... In my
> > code, I have added an itk::WarpJacobianDeterminantFilter to make
> > things a bit clearer.
> >
> > Best,
> > Tom
> >
> > On 9/6/07, Mathieu De Craene <decraene at tele.ucl.ac.be> wrote:
> >
> > Hi ITK folks,
> >
> >
> > I found this email on the mailing list
> >
> >
> > http://public.kitware.com/pipermail/insight-users/2006-August/019246.html
> >
> > and I think these two users are right.
> >
> > I was wondering if we shouldn't add the following line at line 250 of
> > itkDeformationFieldJacobianDeterminantFilter.h to correct the problem
> >
> > if (i == j) J[i][j] += 1.;
> >
> >
> > so that we effectively compute
> >
> >
> > det[ dT/dx ] = det[ I + du/dx ]
> >
> >
> >
> > Thanks for any comment,
> >
> >
> >
> > Mathieu
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org
> > http://www.itk.org/mailman/listinfo/insight-users
> >
>
More information about the Insight-users
mailing list