![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <elxSplineKernelTransform.h>
A transform based on the itk::KernelTransform2.
This transform is a nonrigid transformation, based on thin-plate-spline-like kernels.
The ITK code for this class is largely based on code by Rupert Brooks. For elastix a few modifications were made (making the transform thread safe, and make it support the AdvancedTransform framework).
This nonrigid transformation model allows the user to place control points at application-specific positions, unlike the BSplineTransform, which always uses a regular grid of control points.
NB: in order to use this class for registration, the -fp command line argument is mandatory! It is used to place the fixed image landmarks.
The parameters used in this class are:
Transform: Select this transform as follows:
(Transform "SplineKernelTransform")
SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
Default: ThinPlateSpline. You cannot specify this parameter for each resolution differently.
SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
Default: 0.0. You cannot specify this parameter for each resolution differently.
SplinePoissonRatio: Set the poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Default: 0.3. You cannot specify this parameter for each resolution differently.
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.
-fp: a file specifying a set of points that will serve as fixed image landmarks.
example: -fp fixedImagePoints.txt
The fixedImagePoints.txt file should be structured: first line should be "index" or "point", depending if the user supplies voxel indices or real world coordinates. The second line should be the number of points that should be transformed. The third and following lines give the indices or points. The same structure thus as used for transformix.
-mp: an optional file specifying a set of points that will serve as moving image landmarks, used to initialize the transformation.
example: -mp movingImagePoints.txt
The movingImagePoints.txt should be structured like the fixedImagePoints.txt. The moving landmarks should be corresponding to the fixed landmarks. If no file is provided, the transformation is initialized to be the identity, i.e. the moving landmarks are chosen identical to the fixed landmarks.
Transform: Select this transform as follows:
(Transform "SplineKernelTransform")
SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
*
SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
*
SplinePoissonRatio: Set the Poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.
FixedImageLandmarks: The landmark positions in the fixed image, in world coordinates. Positions written as x1 y1 [z1] x2 y2 [z2] etc.
example: (FixedImageLandmarks 10.0 11.0 12.0 4.0 4.0 4.0 6.0 6.0 6.0 )
Definition at line 115 of file elxSplineKernelTransform.h.
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
static std::string | ConvertSecondsToDHMS (const double totalSeconds, const unsigned int precision) |
static void | InitializeElastixExecutable () |
static bool | IsElastixLibrary () |
Protected Types | |
typedef itk::ElasticBodySplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > | EBKernelTransformType |
typedef itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > | EBRKernelTransformType |
typedef itk::ThinPlateSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > | TPKernelTransformType |
typedef itk::ThinPlateR2LogRSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > | TPRKernelTransformType |
typedef itk::VolumeSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > | VKernelTransformType |
Private Member Functions | |
void | operator= (const Self &) |
SplineKernelTransform (const Self &) | |
Private Attributes | |
std::string | m_SplineKernelType |
typedef Superclass2::CombinationTransformType elastix::SplineKernelTransform< TElastix >::CombinationTransformType |
Definition at line 178 of file elxSplineKernelTransform.h.
typedef Superclass2::ConfigurationPointer elastix::SplineKernelTransform< TElastix >::ConfigurationPointer |
Definition at line 171 of file elxSplineKernelTransform.h.
typedef Superclass2::ConfigurationType elastix::SplineKernelTransform< TElastix >::ConfigurationType |
Definition at line 170 of file elxSplineKernelTransform.h.
typedef itk::SmartPointer< const Self > elastix::SplineKernelTransform< TElastix >::ConstPointer |
Definition at line 136 of file elxSplineKernelTransform.h.
typedef Superclass2::CoordRepType elastix::SplineKernelTransform< TElastix >::CoordRepType |
Definition at line 174 of file elxSplineKernelTransform.h.
|
protected |
Definition at line 219 of file elxSplineKernelTransform.h.
|
protected |
Definition at line 221 of file elxSplineKernelTransform.h.
typedef Superclass2::ElastixPointer elastix::SplineKernelTransform< TElastix >::ElastixPointer |
Definition at line 169 of file elxSplineKernelTransform.h.
typedef Superclass2::ElastixType elastix::SplineKernelTransform< TElastix >::ElastixType |
Typedef's from the TransformBase class.
Definition at line 168 of file elxSplineKernelTransform.h.
typedef Superclass2::FixedImageType elastix::SplineKernelTransform< TElastix >::FixedImageType |
Definition at line 175 of file elxSplineKernelTransform.h.
typedef Superclass1::InputCovariantVectorType elastix::SplineKernelTransform< TElastix >::InputCovariantVectorType |
Definition at line 160 of file elxSplineKernelTransform.h.
typedef Superclass1::InputPointType elastix::SplineKernelTransform< TElastix >::InputPointType |
Definition at line 164 of file elxSplineKernelTransform.h.
typedef Superclass1::InputVectorType elastix::SplineKernelTransform< TElastix >::InputVectorType |
Definition at line 158 of file elxSplineKernelTransform.h.
typedef Superclass1::InputVnlVectorType elastix::SplineKernelTransform< TElastix >::InputVnlVectorType |
Definition at line 162 of file elxSplineKernelTransform.h.
typedef Superclass2::ITKBaseType elastix::SplineKernelTransform< TElastix >::ITKBaseType |
Definition at line 177 of file elxSplineKernelTransform.h.
typedef Superclass1::JacobianType elastix::SplineKernelTransform< TElastix >::JacobianType |
Definition at line 157 of file elxSplineKernelTransform.h.
typedef KernelTransformType::Pointer elastix::SplineKernelTransform< TElastix >::KernelTransformPointer |
Extra typedefs
Definition at line 181 of file elxSplineKernelTransform.h.
typedef itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > elastix::SplineKernelTransform< TElastix >::KernelTransformType |
The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform.
Definition at line 134 of file elxSplineKernelTransform.h.
typedef Superclass2::MovingImageType elastix::SplineKernelTransform< TElastix >::MovingImageType |
Definition at line 176 of file elxSplineKernelTransform.h.
typedef Superclass1::NumberOfParametersType elastix::SplineKernelTransform< TElastix >::NumberOfParametersType |
Definition at line 156 of file elxSplineKernelTransform.h.
typedef Superclass1::OutputCovariantVectorType elastix::SplineKernelTransform< TElastix >::OutputCovariantVectorType |
Definition at line 161 of file elxSplineKernelTransform.h.
typedef Superclass1::OutputPointType elastix::SplineKernelTransform< TElastix >::OutputPointType |
Definition at line 165 of file elxSplineKernelTransform.h.
typedef Superclass1::OutputVectorType elastix::SplineKernelTransform< TElastix >::OutputVectorType |
Definition at line 159 of file elxSplineKernelTransform.h.
typedef Superclass1::OutputVnlVectorType elastix::SplineKernelTransform< TElastix >::OutputVnlVectorType |
Definition at line 163 of file elxSplineKernelTransform.h.
typedef Superclass1::ParametersType elastix::SplineKernelTransform< TElastix >::ParametersType |
Definition at line 155 of file elxSplineKernelTransform.h.
typedef itk::SmartPointer< Self > elastix::SplineKernelTransform< TElastix >::Pointer |
Definition at line 135 of file elxSplineKernelTransform.h.
typedef PointSetType::Pointer elastix::SplineKernelTransform< TElastix >::PointSetPointer |
Definition at line 183 of file elxSplineKernelTransform.h.
typedef KernelTransformType::PointSetType elastix::SplineKernelTransform< TElastix >::PointSetType |
Definition at line 182 of file elxSplineKernelTransform.h.
typedef Superclass2::RegistrationPointer elastix::SplineKernelTransform< TElastix >::RegistrationPointer |
Definition at line 173 of file elxSplineKernelTransform.h.
typedef Superclass2::RegistrationType elastix::SplineKernelTransform< TElastix >::RegistrationType |
Definition at line 172 of file elxSplineKernelTransform.h.
typedef Superclass1::ScalarType elastix::SplineKernelTransform< TElastix >::ScalarType |
Typedefs inherited from the superclass.
Definition at line 154 of file elxSplineKernelTransform.h.
typedef SplineKernelTransform elastix::SplineKernelTransform< TElastix >::Self |
Standard ITK-stuff.
Definition at line 123 of file elxSplineKernelTransform.h.
typedef itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > elastix::SplineKernelTransform< TElastix >::Superclass1 |
Definition at line 126 of file elxSplineKernelTransform.h.
typedef elx::TransformBase< TElastix > elastix::SplineKernelTransform< TElastix >::Superclass2 |
Definition at line 127 of file elxSplineKernelTransform.h.
|
protected |
Definition at line 213 of file elxSplineKernelTransform.h.
|
protected |
Definition at line 215 of file elxSplineKernelTransform.h.
|
protected |
Definition at line 217 of file elxSplineKernelTransform.h.
|
protected |
The constructor.
|
inlineoverrideprotected |
The destructor.
Definition at line 210 of file elxSplineKernelTransform.h.
|
private |
The private constructor.
|
overridevirtual |
Execute stuff before everything else:
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Execute stuff before the actual registration:
Reimplemented from elastix::BaseComponent.
|
protectedvirtual |
Read source landmarks from fp file
|
protectedvirtual |
Read target landmarks from mp file or load identity.
elastix::SplineKernelTransform< TElastix >::elxClassNameMacro | ( | "SplineKernelTransform< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "SplineKernelTransform")
|
virtual |
Run-time type information (and related methods).
Reimplemented from elastix::TransformBase< TElastix >.
elastix::SplineKernelTransform< TElastix >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
Superclass2::FixedImageDimension | |||
) |
Dimension of the domain space.
|
static |
Method for creation through the object factory.
|
private |
The private copy constructor.
|
overridevirtual |
Function to read transform-parameters from a file.
Reimplemented from elastix::TransformBase< TElastix >.
|
protectedvirtual |
General function to read all landmarks.
|
protectedvirtual |
Create an instance of a kernel transform. Returns false if the kernelType is unknown.
|
overridevirtual |
Function to write transform-parameters to a file.
Reimplemented from elastix::TransformBase< TElastix >.
|
protected |
The itk kernel transform.
Definition at line 246 of file elxSplineKernelTransform.h.
|
private |
Definition at line 255 of file elxSplineKernelTransform.h.
Generated on 1667476801 for elastix by ![]() |
![]() |