Extracting vectors from displacement field

Hello everyone,

I am performing volume registration and so far I was using ParaView and Glyphs to visualize the deformation field (after saving it in .vtk format).
I am wondering though, if there is a way to extract the vectors in a different format so I can also process them in Matlab or maybe extract the vectors from a filter in ParaView. Ideally, I would like to find a way to obtain the vector for each voxel so I can then compare the magnitude at specific voxels among different registrations.

Thanks a lot and I am looking forward for your replies!


Hello @thanos,

Welcome to ITK! :sunny:

To visualize the transform, the 3D Slicer transform visualizer is a fantastic tool get a perspective into the transform, visualized with arrow or sphere glyphs, grids, and isosurfaces in both 2D and 3D. Slicer supports reading and writing transformation in ITK’s HDF5 transformation file format.

If the transformation is not already a displacement field, it can be converted into a displacement field over the image’s domain with itk::TransformToDisplacementFieldFilter. The displacement field is a multi-component ITK image. The displacement vector value at specific locations can be probed with the GetPixel() method. Interfaces are available in Python (has a Matlab-like interface) to probe these values.

I hope this helps.