-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document difference between SetExternalInitialTransform
and SetInitialTransform
#961
Comments
@N-Dekker a related observation while working with the API -- it seems that |
Originally yes (meaning that originally both
Does that answer your question? |
I would expect that these methods do not modify their inputs, so they would be marked const. But are you saying that they may modify their inputs or the output shares modifiable memory with the input? Regarding this, is there something that could be added to the method documentation? |
I could indeed add a note, saying that a transform passed to Rationale: If we would really need SetExternalInitialTransform to accept a pointer to a const transform object, we could either:
But I think the current approach (non-const-only) is OK. |
Note that at the moment |
Both
ElastixRegistrationMethod::SetExternalInitialTransform
andElastixRegistrationMethod::SetInitialTransform
support specifying a "standard" ITK transform as initial transformation to an elastix registration. However,SetInitialTransform
internally converts the specified transform to the corresponding elastix "advanced" transform, whileSetExternalInitialTransform
just uses a pointer to the specified ITK transform object during the registration process.SetInitialTransform
only works fine if there is a corresponding elastix "advanced" transform for the specified "standard" ITK transform. In practice this means thatSetInitialTransform
only supports the following standard ITK transform types:On the other hand,
SetExternalInitialTransform
was designed to supportitk::DisplacementFieldTransform
.If
SetInitialTransform
works for the specific ITK transform, it is preferred overSetExternalInitialTransform
. (TODO Explain why: better performance? Jacobian/Hessian support?)TODO: Move this to Doxygen, and if necessary, add a Jupyter Notebook.
The text was updated successfully, but these errors were encountered: