[Insight-developers] [Insight-registration] vector transformation / reorientation
Francois Budin
insight.mailinglist.francois at budin.fr
Mon Nov 22 11:41:14 EST 2010
Hi everybody,
For tensor resampling, I had written a whole set of filters that could
be reused. They are available in this Insight Journal paper:
An ITK Implementation of a Diffusion Tensor Images Resampling Filter
http://hdl.handle.net/10380/3189
The resampling filter reorients the tensors. I guess if you actually
don't want to reorient the tensors, you can use the basic
itk::ResampleImageFilter.
Sincerely,
Francois
> On Mon, Nov 22, 2010 at 3:41 AM, Tom Vercauteren
> <tom.vercauteren at m4x.org> wrote:
>> Hi all,
>>
>> As Brian just mentioned, there may be several ways of performing
>> re-orientation for a given type. PPD or FS being the most widely
>> encountered choices for diffusion tensors reorientation. Besides, 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.
>>
>> [Shameless add] For the specific case of FS in dimension 3, the
>> analytical derivative can be found in Thomas Yeo's paper (which I
>> co-authored):
>> http://people.csail.mit.edu/ythomas/publications/2009DTI-TMI.pdf
>>
>> Hence, I believe that we need a generic approach where one can plug
>> its own reorientation strategy. In that view, I would prefer a 2bis
>> option where resampling and reorientation are done in one pass but
>> where the user can choose its reorientation strategy much like he can
>> now choose its interpolator.
>>
>> The tricky part is how to handle the derivative of the reorientation
>> strategy in a generic manner in the registration framework and not
>> kill performance.
>>
>> If we add a good linear algebra package (say eigen 3*), we could have
>> a no-op reorientation strategy that simply multiplies by identity
>> matrices but does not cost anything at run-time thanks to expression
>> templates.
>>
>> My two cents,
>> Tom
>>
>> *Sadly, several people in ITK would like not to rely on eigen 3
>> because of its license:
>> http://www.itk.org/mailman/private/insight-developers/2010-March/014318.html
>>
>> On Sun, Nov 21, 2010 at 02:43, brian avants <stnava at gmail.com> wrote:
>>> Right. The eigendecomposition approach is part of the "preservation of
>>> principal directions" algorithm used when reorienting diffusion tensors.
>>> The idea is that, as long as your deformation is a diffeomorphism, you can
>>> estimate it, locally, as an affine transformation. Then you use the rigid
>>> part of the affine transformation to reorient the tensor's eigenvectors.
>>> There are a few other steps, though.
>>>
>>> My question, in part, is whether ITK's pixel types are specific enough to
>>> uniquely specify the required reorientation. Some examples:
>>>
>>> A diffusion tensor may be reoriented by either PPD (above) or finite strain
>>> estimates. So this is a non-unique mapping from pixel type to
>>> reorientation strategy.
>>>
>>> When reorienting a vector, one may want to change its relative orientation
>>> but not change its length, even under an affine transformation. Also a
>>> non-unique mapping from pixel type to reorientation strategy.
>>>
>>> One approach (what we've done in the past) is to implement filters for each
>>> of these strategies for DTI. While having filters would be nice, I can see
>>> this becoming confusing, in particular if some metrics/interpolators are
>>> performing reorientation as well.
>>>
>>> Matt, I look forward to seeing the strain filter. Thans much!
>>> Re: Tcon , when would you like to discuss? Previously, we used 10 am
>>> Tuesday for registration discussions.
>>> Brian
>>> On Nov 20, 2010 4:36 PM, "Luis Ibanez" <luis.ibanez at kitware.com> wrote:
>>>> On Sat, Nov 20, 2010 at 7:14 PM, Matthew McCormick (thewtex) <
>>>> matt at mmmccormick.com> wrote:
>>>>
>>>>> On Sat, Nov 20, 2010 at 6:07 PM, Luis Ibanez <luis.ibanez at kitware.com>
>>>>> wrote:
>>>>> >
>>>>> >
>>>>> > On Sat, Nov 20, 2010 at 7:00 PM, Matthew McCormick (thewtex)
>>>>> > <matt at mmmccormick.com> wrote:
>>>>> >>
>>>>> >> >
>>>>> >> > (b) Estimating the Rotational and Stress component of the
>>>>> >> > deformation field at that pixel location and use it to correct
>>>>> >> > the Vector (or covariant vector) accordingly. This is
>>>>> >> > essentially based on the Jacobian matrix of the deformation
>>>>> >> > field, estimated at the location of the pixel.
>>>>> >> >
>>>>> >>
>>>>> >> I have a StrainImageFilter that calculates the strain tensor from a
>>>>> >> deformation field if it would be of any help. I assume what is meant
>>>>> >> by the 'Rotational and Stress component' are the same as the angles to
>>>>> >> the principle strains and the principle strains. I intend on
>>>>> >> submitting this filter to the Insight Journal in the next week or two
>>>>> >> after I get another paper out and the following patch gets merged:
>>>>> >>
>>>>> >>
>>>>> >>
>>>>>
>>>>> http://review.source.kitware.com/#q,status:open+project:ITK+branch:master+topic:BUG0010725_VTKTensors3,n,z
>>>>> >>
>>>>> >> Matt
>>>>> >
>>>>> >
>>>>> > Excellent !
>>>>> >
>>>>> > Yes,
>>>>> > that what I meant by the stress component.
>>>>> >
>>>>> > Do you see a way of deriving as well
>>>>> > the rotational component of the Jacobian ?
>>>>> >
>>>>>
>>>>> I was thinking just using
>>>>>
>>>>>
>>>>> http://www.itk.org/Doxygen320/html/classitk_1_1SymmetricEigenAnalysis.html#_details
>>>>>
>>>>> And the eigenvectors determine the rotation, while the eigenvalues
>>>>> (principle strains) determine the compression/expansion of the
>>>>> components? Correct?
>>>>>
>>>>> Matt
>>>>>
>>>>
>>>>
>>>> Yes,
>>>> That sound very reasonable to me.
>>>>
>>>>
>>>> Luis
>>>
>>> _______________________________________________
>>> Insight-registration mailing list
>>> Insight-registration at public.kitware.com
>>> http://public.kitware.com/cgi-bin/mailman/listinfo/insight-registration
>>>
>>>
>> _______________________________________________
>> 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.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
>>
>
More information about the Insight-developers
mailing list