[Insight-developers] Members in itkSymmetricSecondRankTensor vs. itkDiffusionTensor3D

Torsten Rohlfing torsten at synapse.sri.com
Sat Jun 4 19:06:09 EDT 2005


Luis --

your comments make perfect sense. I also discovered the GetTrace() 
member in the general tensor class in the meantime, which I had 
overlooked earlier.

Unless someone else insists on doing this, I will put implementations of 
the anisotropy measures into the general tensor class and send you the 
patch in the next few days.

Best,
  Torsten

Luis Ibanez wrote:

>
> Hi Torsten,
>
> Thanks for pointing this out.
>
> You are right that these methods could be moved from the 
> DiffusionTensor3D into the SymmetricSecondRankTensor.
>
> Note however that the Diffusion tensor is explicitly limited
> to 3D, so some of these operation can be optimized for
> performance by counting in the 3D limitation. The Symmetric
> second rank tensor, on the other hand, is N-Dimensional.
>
>
> For example, the GetTrace() method is actually available
> in both the SymmetricSecondRankTensor and the DiffusionTensor3D
> classes. The implementation on the base class is N-Dimensional
> and therefore slower because it involves a for-loop.  We could
> speed it up by using template MetaProgramming, just as Bill
> Lorensen did for the Oriented image....
> The implementation on the derived class is the fastest possible
> one because it goes straight to adding the three components in
> the diagonal.
>
>
> So, to summarize:
> Yes, It makes sense to provide implementations of these methods
> in the base class SymmetricSecondRankTensor, but for performance
> reasons we definetily want to keep the specializations on the
> derived class (DiffusionTensor3D). Specially taking into account
> that this class is intended to be used as a Image Pixel Type.
> Therefore these methods will be invoked millions of times in a
> program using that uses the DTI image modality.
>
>
> Regards,
>
>
>    Luis
>
>
> -------------------------
> Torsten Rohlfing wrote:
>
>>
>> Hi --
>>
>> I have been playing with the recently added tensor data structures, 
>> and I was wondering: wouldn't it make sense to move some of the 
>> member in itkDiffusionTensor3D to itkSymmetricSecondRankTensor? I am 
>> talking in particular about GetTrace(), GetFractionalAnisotropy(), 
>> GetRelativeAnisotropy(). All these can easily be defined for an 
>> arbitrary symmetric rank-2 tensor. The trace is even a general 
>> concept that is not specific to DTI. I can see why one would think 
>> that the anisotropy measures are connected to the idea of diffusion, 
>> but they can easily be computed for non-diffusion related tensors, 
>> and maybe they'll be useful there, too?
>>
>> Best,
>>  Torsten
>>
>
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: torsten.vcf
Type: text/x-vcard
Size: 364 bytes
Desc: not available
Url : http://www.itk.org/mailman/private/insight-developers/attachments/20050604/8e2e7e9e/torsten.vcf


More information about the Insight-developers mailing list