[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