The fix for this bug is to return a Matrix instead of a SymmetricSecondRankTensor, but if you have some math like:

A = g*T*g' where T is a tensor and you know that the result A is a tensor, it would be nice to have a way to convert the Matrix that is produced by T.PreMultiply(g).PostMultiply(g.GetTranspose()) into a Tensor. A copy constructor or assignment operator may not be ideal as they could lead to unintended consequences from accidentally converting from a Matrix to a Tensor, but perhaps there could be a method with a name like InitFromMatrix so that one could write:

DiffusionTensor3D newT;
newT.InitFromMatrix(A);

I can add this new method under the same gerrit patch http://review.source.kitware.com/5943 . Is there any preference for the name? Any reason this shouldn't be done?
-Kris


Hello,
    While working on some code that does math with DiffusionTensor3D
pixels, I found that DiffusionTensor3D's parent class
SymmetricSecondRankTensor returns a SymmetricSecondRankTensor from
both the PreMultiply(MatrixType m) and the PostMultiply(MatrixType
m).  This code is in effect saying that a symmetric tensor multiplied
by any matrix results in a symmetric tensor which is not true!  The
code needs to be changed to return a Matrix instead of a
SymmetricSecondRankTensor.  Anyone who is using these PreMultiply and
PostMultiply methods currently is having important information from
the lower half of the matrix thrown away and getting incorrect
computations as a result.

I have added a patch that fixes this bug at 
http://review.source.kitware.com/5943

-Kris
_______________________________________________
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.php

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

Reply via email to