ITK implementation of geometric vector/tensor image transformations

I am developing a new algorithm on itk and require the transformation of images which have different tensorial nature (vector, covector, symmetric rank-2 tensor). I was convinced that itk has this already implemented but, for what I have been able to find, apparently it is not. There are some implementations to transform a vector/tensor at a single point. But not for a full image.
The closest information in that direction that I have found is a discussion 11-years old:

https://insight-developers.itk.narkive.com/CoNkbdUO/vector-transformation-reorientation#post13

Have any of you any information on how this discussion was followed? Or if it was finally developed in a different way?

Thanks

Hi -

You can look at how things have been implemented in Slicer:

1 Like

Thanks, Steve, for this pointer. It is a pity that this has been implemented outside itk.

In any case, the implementation in Slicer is not quite generic. It requires the resampling and the transforms to be specific for (diffusion) symmetric tensors. Thus, any other type of object (vector, covector, contravariant tensors, non-symmetric tensors) would require specializing the full class structure.

If there is no other alternative, I will try to implement it myself including a “PixelValueTransformer” to the itkResampleImageFilter. (Better alternative naming is welcome.)
Do you see any problem with this approach?

Thanks

It would be great if you can contribute this to ITK.

Yes, I will try to submit it when completed.

1 Like