18#ifndef itkTimeVaryingBSplineVelocityFieldImageRegistrationMethod_h
19#define itkTimeVaryingBSplineVelocityFieldImageRegistrationMethod_h
86template <
typename TFixedImage,
87 typename TMovingImage,
88 typename TOutputTransform = TimeVaryingBSplineVelocityFieldTransform<double, TFixedImage::ImageDimension>,
89 typename TVirtualImage = TFixedImage,
90 typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension>>
107 static constexpr unsigned int ImageDimension = TFixedImage::ImageDimension;
115 using typename Superclass::FixedImagesContainerType;
118 using typename Superclass::MovingImagesContainerType;
122 using typename Superclass::PointSetsContainerType;
125 using typename Superclass::ImageMetricType;
131 using typename Superclass::VirtualImageBaseType;
132 using typename Superclass::VirtualImageBaseConstPointer;
134 using typename Superclass::MetricType;
135 using typename Superclass::MultiMetricType;
137 using typename Superclass::PointSetMetricType;
141 using typename Superclass::FixedImageMaskType;
143 using typename Superclass::FixedImageMasksContainerType;
144 using typename Superclass::MovingImageMaskType;
146 using typename Superclass::MovingImageMasksContainerType;
148 using typename Superclass::InitialTransformType;
151 using RealType =
typename OutputTransformType::ScalarType;
160 typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticeType;
162 typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticePointer;
165 typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticePointer;
168 using typename Superclass::CompositeTransformType;
171 using typename Superclass::DecoratedOutputTransformType;
204 itkSetMacro(ConvergenceWindowSize,
unsigned int);
205 itkGetConstMacro(ConvergenceWindowSize,
unsigned int);
252 unsigned int m_ConvergenceWindowSize{ 10 };
262#ifndef ITK_MANUAL_INSTANTIATION
263# include "itkTimeVaryingBSplineVelocityFieldImageRegistrationMethod.hxx"
Image filter which provides a B-spline output approximation.
A templated class holding a point in n-Dimensional image space.
Implementation of an image mask as spatial object.
Interface method for the current registration framework.
std::vector< FixedImageMaskConstPointer > FixedImageMasksContainerType
std::vector< PointSetConstPointer > PointSetsContainerType
std::vector< MovingImageConstPointer > MovingImagesContainerType
std::vector< FixedImageConstPointer > FixedImagesContainerType
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
Interface method for the current registration framework using the time varying velocity field transfo...
typename MovingImageType::Pointer MovingImagePointer
typename DerivativeType::ValueType DerivativeValueType
typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticeType TimeVaryingVelocityFieldType
TPointSet InputPointSetType
typename OutputTransformType::DisplacementFieldType DisplacementFieldType
TOutputTransform OutputTransformType
TMovingImage MovingImageType
typename CompositeTransformType::TransformType TransformBaseType
typename ImageMetricType::Pointer ImageMetricPointer
typename TimeVaryingVelocityFieldControlPointLatticeType::PixelType DisplacementVectorType
void PrintSelf(std::ostream &os, Indent indent) const override
void AttachMetricGradientPointSetAtSpecificTimePoint(const RealType, VelocityFieldPointSetType *, WeightsContainerType *, const FixedImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType)
typename ImageMetricType::DerivativeType MetricDerivativeType
typename ImageMetricType::MeasureType MeasureType
typename WeightsContainerType::Element WeightsElementType
typename OutputTransformType::ScalarType RealType
void GetMetricDerivativePointSetForAllTimePoints(VelocityFieldPointSetType *, WeightsContainerType *)
typename FixedImageType::Pointer FixedImagePointer
typename OutputTransformType::Pointer OutputTransformPointer
typename DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
typename VelocityFieldPointSetType::Pointer VelocityFieldPointSetPointer
typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticePointer TimeVaryingVelocityFieldPointer
typename ImageMaskSpatialObjectType::ImageType FixedMaskImageType
typename ImageMaskSpatialObjectType::ImageType MaskImageType
TFixedImage FixedImageType
typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticeType TimeVaryingVelocityFieldControlPointLatticeType
typename MetricType::Pointer MetricPointer
~TimeVaryingBSplineVelocityFieldImageRegistrationMethod() override=default
void GenerateData() override
typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticePointer TimeVaryingVelocityFieldControlPointLatticePointer
typename OutputTransformType::DerivativeType DerivativeType
TimeVaryingBSplineVelocityFieldImageRegistrationMethod()
typename ImageMaskSpatialObjectType::ImageType MovingMaskImageType
typename DisplacementFieldType::PointType DisplacementFieldPointType
virtual void StartOptimization()
typename InputPointSetType::Pointer InputPointSetPointer
typename BSplineFilterType::WeightsContainerType WeightsContainerType
typename Superclass::VirtualImageType VirtualImageType
typename DisplacementFieldTransformType::Pointer DisplacementFieldTransformPointer
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
SmartPointer< Self > Pointer
ImageBaseType::PointType PointType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType