[Insight-developers] [Insight-registration] vector transformation / reorientation

Luis Ibanez luis.ibanez at kitware.com
Tue Nov 23 10:33:10 EST 2010


Hi Tom,

On Tue, Nov 23, 2010 at 2:41 AM, Tom Vercauteren <tom.vercauteren at m4x.org>wrote:

> Hi Brian,
>
> On Mon, Nov 22, 2010 at 23:11, brian avants <stnava at gmail.com> wrote:
> > I think Tom's idea is quite nice.   We add a
> >
> > resampler->SetReorientationStrategy( reorienter );
> >
> > function to the ResampleImageFilter .... obviously, for most cases, it
> > would not be needed.
>
> By the way, would there be any more appropriate name than
> ReorientationStrategy? In some specific cases, I guess that the user
> might be interested in not only rotating but also re-scaling the
> diffusion tensor. That is, what might be wanted is to apply the full
> Jacobian matrix: J^-1 . T . J
>
> In this case, reorientation is not exactly what is done. Anyhow, with
> some documentation, this might be clear enough.
>
>
>
How about:

                         "PixelTransformationFunction"



> > Tom, you mentioned "what can be of interest, especially for image
> > registration, is the the derivative of this reorientation strategy. It
> > should indeed come into the computation of the derivative of the
> > objective function."  and also your FS paper.
> >
> > I am not sure that we can implement the derivative wrt reorientation
> > in a general way, though it's possible to implement for some cases,
> > e.g. FS and PPD.   Did you have more specific thoughts about this?
>
> Not really, I just thought it would be nice to support it if we can
> (much like some computation of a pseudo-Hessian on objective
> functions).
>
> If no analytical derivation can be made, we could either return an
> identity matrix, compute if from finite difference or automatic
> differentiation (
> http://en.wikipedia.org/wiki/Automatic_differentiation ) or provide a
> way to inform the user that this function is not implemented. For
> performance reasons, I wouldn't rely on exceptions but maybe on
> something close to boost optional:
> http://www.boost.org/doc/libs/release/libs/optional/index.html
>
> http://www.boost.org/doc/libs/release/libs/optional/doc/html/boost_optional/examples.html#boost_optional.examples.optional_return_values
>
>
> Tom
>


We may have to profile the computation time, to be sure,
but, looking at the code of the itkResampleImageFilter.txx,
we already perform enough computation per pixel, that
the additional call to a function per pixel may not have a
significant impact in the computation time.

If that's the case, we can simply have the pixel-rotation-helper
class be set by default to a class that performs a null-operation,
and that can be replaced, by the user, with any of the other
flavors of pixel rotation(scaling) that we may want to made
available.



       Luis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20101123/0e7e9de5/attachment.htm>


More information about the Insight-developers mailing list