The interface of the Rigid Registration Functionality is extremely user unfriendly, especially now that support for registration with a resolution pyramid approach is added.
Previously it was already possible to save and load registration parameters/settings. These settings can now also be used to specify the registration parameters for separate levels in pyramidal registration, but that has to be done by entering the names of the presets (comma separated for each resolution level) in a text field. The same holds for the way that the schemes for the resolution pyramids are set. This is unclear and laborious, since you will first have to create settings and save them. Furthermore, if you decide to use a pyramid the pages in which you can specify a transformation, metric, optimizer and interpolator are still available, which is confusing.
The next problem that rises is the problem that you give settings that aren't supported by the registration classes. For example it is possible to tell the functionality to use several different transforms for a pyramidal registration, while actually only Affine registration is supported. The same holds for metrics and interpolators, which can't be changed at the transition from one level to another, although the interface seems to allow this.
Since this functionality is open source it might be worthwhile to take a good look at these problems.
Shortly what needs to be done is:
- Decide what functionality we will allow in pyramidal registration (as far as combinations of optimizers, metrics, transformations and interpolations between different levels in the pyramidal registrations are concerned)
- Design a new user friendly interface in which it is possible to specify a single registration, but also pyramidal registration. It should be clear someway or another what settings will be used.
- Inform the user correctly about the possibilities. Maybe perform a check on the given presets?
- Update the documentation.