#include <elxWeightedCombinationTransform.h>
A transform based on the itk::WeightedCombinationTransform.
This transform is a weighted combination transformation. It implements .
The transformparameters are the weighting factors for each subtransform . You could use this to implement registration using a statistical deformation model. Each subtransform would then be a principal component that follows from your statistical model for example.
A normalization factor can optionally be used:
You can also use this class to average transformations found by previous elastix runs.
The parameters used in this class are:
Transform: Select this transform as follows:
(Transform "WeightedCombinationTransform")
NormalizeCombinationWeights: use the normalized expression .
(NormalizeCombinationWeights "true" )
Default value: "false". Different values in each resolution are not supported.
SubTransforms: a list of transform parameter filenames that will serve as subtransforms .
(SubTransforms "tp0.txt" "TransformParameters.1.txt" "tpbspline.txt" )
AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: (AutomaticScalesEstimation "true")
Default: "false".
Scales: The scale factor for each transform parameter, during optimization.
If your input subtransforms have very different magnitudes, you may compensate for that by supplying scales, which will make the optimization CostFunction better behaving. For subtransforms with a high magnitude, provide a large scale then. NB: not in all cases you may want this. example: (Scales 1.0 1.0 10.0)
Default: 1 for each parameter. See also AutomaticScalesEstimation, which is more convenient.
The transform parameters necessary for transformix, additionally defined by this class, are:
NormalizeCombinationWeights: use the normalized expression .
(NormalizeCombinationWeights "true" )
Default value: "false". Different values in each resolution are not supported.
SubTransforms: a list of transform parameter filenames that will serve as subtransforms .
(SubTransforms "tp0.txt" "TransformParameters.1.txt" "tpbspline.txt" )
Definition at line 82 of file elxWeightedCombinationTransform.h.
Public Member Functions | |
void | BeforeRegistration () override |
elxClassNameMacro ("WeightedCombinationTransform") | |
virtual const char * | GetClassName () const |
ITK_DISALLOW_COPY_AND_MOVE (WeightedCombinationTransformElastix) | |
itkStaticConstMacro (SpaceDimension, unsigned int, Superclass2::FixedImageDimension) | |
virtual void | LoadSubTransforms () |
void | ReadFromFile () override |
virtual void | SetScales () |
Public Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions > | |
void | EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
const FixedParametersType & | GetFixedParameters () const override |
bool | GetHasNonZeroSpatialHessian () const override |
bool | GetInverse (Self *inverse) const |
void | GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
void | GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
void | GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
const TransformTypePointer | GetNthTransform (SizeValueType n) const |
NumberOfParametersType | GetNumberOfNonZeroJacobianIndices () const override |
NumberOfParametersType | GetNumberOfParameters () const override |
SizeValueType | GetNumberOfTransforms () const |
const ParametersType & | GetParameters () const override |
void | GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override |
void | GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override |
TransformCategoryEnum | GetTransformCategory () const override |
virtual bool | GetUseAddition () const |
virtual bool | GetUseComposition () const |
bool | HasNonZeroJacobianOfSpatialHessian () const |
bool | IsLinear () const override |
ITK_DISALLOW_COPY_AND_MOVE (AdvancedCombinationTransform) | |
itkGetModifiableObjectMacro (CurrentTransform, CurrentTransformType) | |
itkGetModifiableObjectMacro (InitialTransform, InitialTransformType) | |
itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions) | |
void | SetCurrentTransform (CurrentTransformType *_arg) |
void | SetFixedParameters (const FixedParametersType &fixedParam) override |
void | SetInitialTransform (InitialTransformType *_arg) |
void | SetParameters (const ParametersType ¶m) override |
void | SetParametersByValue (const ParametersType ¶m) override |
void | SetUseAddition (bool _arg) |
void | SetUseComposition (bool _arg) |
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override |
OutputPointType | TransformPoint (const InputPointType &point) const override |
OutputVectorType | TransformVector (const InputVectorType &) const override |
OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const override |
Public Member Functions inherited from itk::AdvancedTransform< TScalarType, 3, 3 > | |
void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override |
virtual bool | GetHasNonZeroJacobianOfSpatialHessian () const |
ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform) | |
itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions) | |
itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions) | |
Public Member Functions inherited from elastix::TransformBase< TElastix > | |
int | BeforeAllTransformix () |
void | ComputeAndWriteSpatialJacobianDeterminantImage () const |
void | ComputeAndWriteSpatialJacobianMatrixImage () const |
SpatialJacobianDeterminantImageType::Pointer | ComputeSpatialJacobianDeterminantImage () const |
SpatialJacobianMatrixImageType::Pointer | ComputeSpatialJacobianMatrixImage () const |
void | CreateTransformParameterMap (const ParametersType ¶m, ParameterMapType ¶meterMap, const bool includeDerivedTransformParameters=true) const |
ITKBaseType * | GetAsITKBaseType () |
const ITKBaseType * | GetAsITKBaseType () const |
ITK_DISALLOW_COPY_AND_MOVE (TransformBase) | |
itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension) | |
itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension) | |
void | ReadInitialTransformFromFile (const std::string &transformParameterFileName) |
void | SetFinalParameters () |
void | SetInitialTransform (InitialTransformType *_arg) |
void | SetReadWriteTransformParameters (const bool _arg) |
void | SetTransformParameterFileName (const std::string &filename) |
template<typename TMesh > | |
TMesh::Pointer | TransformMesh (const TMesh &mesh) const |
void | TransformPoints () const |
void | WriteToFile (std::ostream &transformationParameterInfo, const ParametersType ¶m) const |
Public Member Functions inherited from elastix::BaseComponentSE< TElastix > | |
void | AddTargetCellToIterationInfo (const char *const name) |
const Configuration * | GetConfiguration () const |
ElastixType * | GetElastix () const |
auto & | GetIterationInfoAt (const char *const name) |
RegistrationType * | GetRegistration () const |
ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE) | |
void | RemoveTargetCellFromIterationInfo (const char *const name) |
void | SetConfiguration (const Configuration *_arg) |
void | SetElastix (ElastixType *_arg) |
Public Member Functions inherited from elastix::BaseComponent | |
virtual void | AfterEachIteration () |
virtual void | AfterEachIterationBase () |
virtual void | AfterEachResolution () |
virtual void | AfterEachResolutionBase () |
virtual void | AfterRegistration () |
virtual int | BeforeAll () |
virtual void | BeforeEachResolution () |
virtual void | BeforeEachResolutionBase () |
virtual const char * | elxGetClassName () const |
const char * | GetComponentLabel () const |
ITK_DISALLOW_COPY_AND_MOVE (BaseComponent) | |
itkTypeMacroNoParent (BaseComponent) | |
void | SetComponentLabel (const char *label, unsigned int idx) |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions > | |
static Pointer | New () |
Static Public Member Functions inherited from elastix::BaseComponent | |
template<typename TBaseComponent > | |
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType()) |
static void | InitializeElastixExecutable () |
static bool | IsElastixLibrary () |
Protected Attributes | |
std::vector< std::string > | m_SubTransformFileNames |
const WeightedCombinationTransformPointer | m_WeightedCombinationTransform { WeightedCombinationTransformType::New() } |
Protected Attributes inherited from itk::AdvancedTransform< TScalarType, 3, 3 > | |
bool | m_HasNonZeroJacobianOfSpatialHessian |
bool | m_HasNonZeroSpatialHessian |
Protected Attributes inherited from elastix::BaseComponentSE< TElastix > | |
Configuration::ConstPointer | m_Configuration {} |
itk::WeakPointer< TElastix > | m_Elastix {} |
RegistrationType * | m_Registration {} |
Private Member Functions | |
ParameterMapType | CreateDerivedTransformParameterMap () const override |
void | InitializeTransform () |
Private Attributes | |
elxOverrideGetSelfMacro | |
using elastix::WeightedCombinationTransformElastix< TElastix >::CombinationTransformType = typename Superclass2::CombinationTransformType |
Definition at line 145 of file elxWeightedCombinationTransform.h.
using elastix::TransformBase< TElastix >::CommandLineArgumentMapType |
Definition at line 152 of file elxTransformBase.h.
using elastix::TransformBase< TElastix >::CommandLineEntryType |
Definition at line 153 of file elxTransformBase.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 106 of file elxWeightedCombinationTransform.h.
using elastix::TransformBase< TElastix >::CoordRepType |
Elastix typedef's.
Definition at line 156 of file elxTransformBase.h.
using elastix::TransformBase< TElastix >::FixedImageType |
Definition at line 157 of file elxTransformBase.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 144 of file elxWeightedCombinationTransform.h.
using elastix::TransformBase< TElastix >::MovingImageType |
Definition at line 158 of file elxTransformBase.h.
using elastix::TransformBase< TElastix >::ParameterMapType |
Typedef that is used in the elastix dll version.
Definition at line 199 of file elxTransformBase.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 105 of file elxWeightedCombinationTransform.h.
using elastix::TransformBase< TElastix >::ScalesType |
Definition at line 190 of file elxTransformBase.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::Self = WeightedCombinationTransformElastix |
Standard ITK-stuff.
Definition at line 91 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::SubTransformPointer = typename WeightedCombinationTransformType::TransformPointer |
Definition at line 153 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::SubTransformType = typename WeightedCombinationTransformType::TransformType |
Definition at line 152 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::Superclass1 |
Definition at line 93 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::Superclass2 = elx::TransformBase<TElastix> |
Definition at line 96 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::TransformContainerType = typename WeightedCombinationTransformType::TransformContainerType |
Definition at line 151 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::WeightedCombinationTransformPointer = typename WeightedCombinationTransformType::Pointer |
Extra typedefs
Definition at line 150 of file elxWeightedCombinationTransform.h.
using elastix::WeightedCombinationTransformElastix< TElastix >::WeightedCombinationTransformType |
The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform
Definition at line 100 of file elxWeightedCombinationTransform.h.
|
protected |
The constructor.
|
overrideprotecteddefault |
The destructor.
|
overridevirtual |
Execute stuff before the actual registration:
Reimplemented from elastix::BaseComponent.
|
overrideprivatevirtual |
Creates a map of the parameters specific for this (derived) transform type.
Implements elastix::TransformBase< TElastix >.
elastix::WeightedCombinationTransformElastix< TElastix >::elxClassNameMacro | ( | "WeightedCombinationTransform" | ) |
Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "WeightedCombinationTransform")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::AdvancedCombinationTransform< TScalarType, NDimensions >.
|
private |
Initialize Transform.
elastix::WeightedCombinationTransformElastix< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | WeightedCombinationTransformElastix< TElastix > | ) |
elastix::WeightedCombinationTransformElastix< TElastix >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
Superclass2::FixedImageDimension | ) |
Dimension of the domain space.
|
virtual |
Load from the parameter file a list of subtransforms. The filenames are stored in the m_SubTransformFileNames list
|
static |
Method for creation through the object factory.
|
overridevirtual |
Function to read transform-parameters from a file.
It loads the subtransforms, the NormalizeWeights option, and calls the superclass' implementation.
Reimplemented from elastix::TransformBase< TElastix >.
|
virtual |
Set the scales
|
private |
Definition at line 198 of file elxWeightedCombinationTransform.h.
|
protected |
Definition at line 195 of file elxWeightedCombinationTransform.h.
|
protected |
Definition at line 194 of file elxWeightedCombinationTransform.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |