Nonlinear transforms

Our use-case is that we want to manually adjust a part of a brain atlas to the physiology of an individual subject. Therefore, besides rotation, translation, scaling, we want to transform the part of the atlas also nonlinearly to adjust for specialties of the subject.

3D Slicer seems to support what we try to achieve with the general transforms, however, we do not know how to edit a nonlinear transform. So the question is if anybody knows how to edit nonlinear transforms.
I known from blender the lattice modifier, which would fulfill our needs:

Has there anything been used in 3D Slicer which goes into this direction? If not, what would be an approach to implement functionality like this?

Many thanks!

Hi @rprueckl - In the current release, 4.10, the LandmarkRegistration module lets you interactively control a thin plate spline nonlinear transform with realtime preview. Unfortunately it hasn’t been ported to 4.11 (the markups API changed).

You can use “Fiducial registration wizard” module in SlicerIGT extension, with warping transform option.

“Landmark Registration” module is more optimized for slight adjustment of volumes, while “Fiducial registration wizard” is a more general landmark registration module that is applicable to any kind of nodes, supports automatic point matching (for rigid transforms), sampling from real-time position trackers, transform preview, etc.

You can also compute non-linear transforms fully automatically. You can use SlicerElastix or Brains to automatically register volumes. You can use Segment Registration to non-automaticall register segments (or models, binary labelmaps) to each other.