[Insight-developers] Can someone explain
DiffusionTensor3D::GetRelativeAnisotropy() to me?
Torsten Rohlfing
torsten at synapse.sri.com
Tue Jun 7 14:29:16 EDT 2005
Simon Warfield wrote:
>> The code (purged of numerical safeguards etc) that I don't get is this:
>>
>> const RealValueType anisotropy = 3.0 * isp - trace * trace;
>> const RealValueType relativeAnisotropySquared =
>> static_cast< RealValueType >( anisotropy / ( sqrt( 3.0 ) *
>> trace ) );
>> const RealValueType relativeAnisotropy =
>> static_cast< RealValueType >( sqrt( relativeAnisotropySquared
>> ) );
>>
>> where "isp" is the inner scalar product and "trace" is the tensor
>> trace, both as returned by the respective class member functions.
>>
>> My problem is with the definition of "anisotropy" above. I assume
>> that this is supposed to be the inner product of the anisotropic part
>> of the tensor, that is, the inner product of (tensor - (trace / 3) *
>> identity). This is a double sum over the squares of differences
>> between elements of the original tensor and the corresponding
>> elements of (trace/3) times the identity tensor.
>
>
> Check out Equation 27 here:
> http://splweb.bwh.harvard.edu:8000/pages/papers/westin/media2002/Westin_Diffusion_MedAI_2002.pdf
>
> and the definition of the norm at the top of the column.
>
Simon:
Thank you, but that's exactly my problem - how do you get from Eq. 27 in
the Westin paper to the implementation in ITK? The Westin equation is
basically the same (except for the sqrt(2) factor) to Eq. 14 in the 1996
JMR(B) paper by Basser and Pierpaoli, and their Eq. 10 is the tensor
norm as described in the Westin paper. But how do you get from the
numerator in the second line of Westin's Eq. 27 to "3*isp-trace*trace"
(or isp+1/3*trace*trace, which is basically the same)?
I assume that the sum of the squared elements is broken up, that is, the
differences that make up each element are separated as (a-b)^2 ->
(a^2-2ab+b^2), and so sum_i sum_j (a-b)^2 becomes sum_ij a^2 - 2sum_ij
ab + sum_ij b^2.
Then with a_ij==D and b_ij==1/3 trace(D)I, that would give
sum_ij D_ij^2 - 2/3 trace(D) sum_ij I_ij + (1/3 trace(D))^2 sum_ij I_ij
and with the first term the norm of D and I the identity tensor we would
have
|D| - 2 trace(D) + 1/3 trace(D)^2
So where is the middle part going in ITK?
Sorry if I am suffering from a mental block here.
Again, thanks for your help!
Torsten
--
Torsten Rohlfing, PhD SRI International, Neuroscience Program
Research Scientist 333 Ravenswood Ave, Menlo Park, CA 94025
Phone: ++1 (650) 859-3379 Fax: ++1 (650) 859-2743
torsten at synapse.sri.com http://www.stanford.edu/~rohlfing/
"Though this be madness, yet there is a method in't"
More information about the Insight-developers
mailing list