ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkVelocityFieldTransform.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkVelocityFieldTransform_h
19#define itkVelocityFieldTransform_h
20
22
23namespace itk
24{
25
35template <typename TParametersValueType, unsigned int VDimension>
36class ITK_TEMPLATE_EXPORT VelocityFieldTransform : public DisplacementFieldTransform<TParametersValueType, VDimension>
37{
38public:
40
46
49
51 itkNewMacro(Self);
52
55
57 using typename Superclass::ScalarType;
58
62 using typename Superclass::ParametersType;
64
67
70
72 using typename Superclass::InputPointType;
73 using typename Superclass::OutputPointType;
74
76 using typename Superclass::InputVectorType;
77 using typename Superclass::OutputVectorType;
78
81
83 using typename Superclass::DerivativeType;
84
86 static constexpr unsigned int VelocityFieldDimension = VDimension + 1;
87
89 static constexpr unsigned int Dimension = VDimension;
90
94
97
101
110
113
117
119
124 virtual void
126 itkGetModifiableObjectMacro(VelocityField, VelocityFieldType);
128
129 void
131
134 virtual void
136 itkGetModifiableObjectMacro(VelocityFieldInterpolator, VelocityFieldInterpolatorType);
138
140 itkGetConstReferenceMacro(VelocityFieldSetTime, unsigned long);
141
147 void
148 SetDisplacementField(DisplacementFieldType * displacementField) override
149 {
150 itkDebugMacro("setting DisplacementField to " << displacementField);
151 if (this->m_DisplacementField != displacementField)
152 {
153 this->m_DisplacementField = displacementField;
154 this->Modified();
155 }
156 }
157
158
159 void
160 UpdateTransformParameters(const DerivativeType & update, ScalarType factor = 1.0) override;
161
163 bool
164 GetInverse(Self * inverse) const;
165
168 GetInverseTransform() const override;
169
171 virtual void
174
179 itkSetClampMacro(LowerTimeBound, ScalarType, 0.0, 1.0);
180
185 itkGetConstMacro(LowerTimeBound, ScalarType);
186
191 itkSetClampMacro(UpperTimeBound, ScalarType, 0.0, 1.0);
192
197 itkGetConstMacro(UpperTimeBound, ScalarType);
198
202 itkSetMacro(NumberOfIntegrationSteps, unsigned int);
203
207 itkGetConstMacro(NumberOfIntegrationSteps, unsigned int);
208
209protected:
211 ~VelocityFieldTransform() override = default;
212 void
213 PrintSelf(std::ostream & os, Indent indent) const override;
214
216 typename LightObject::Pointer
217 InternalClone() const override;
218
221
224
226
228
231
234 unsigned long m_VelocityFieldSetTime{};
235
236private:
241 virtual void
243};
244} // end namespace itk
245
246#ifndef ITK_MANUAL_INSTANTIATION
247# include "itkVelocityFieldTransform.hxx"
248#endif
249
250#endif // itkVelocityFieldTransform_h
itkSetMacro(InputSpaceName, std::string)
itkGetConstReferenceMacro(InputSpaceName, std::string)
itkOverrideGetNameOfClassMacro(TransformBaseTemplate)
ITK_DISALLOW_COPY_AND_MOVE(TransformBaseTemplate)
VariableLengthVector< TParametersValueType > InputVectorPixelType
Array< ParametersValueType > DerivativeType
Point< TParametersValueType, VInputDimension > InputPointType
OptimizerParameters< FixedParametersValueType > FixedParametersType
IdentifierType NumberOfParametersType
TransformBaseTemplateEnums::TransformCategory TransformCategoryEnum
virtual void SetDisplacementField(DisplacementFieldType *field)
VariableLengthVector< TParametersValueType > OutputVectorPixelType
ParametersValueType ScalarType
TParametersValueType ParametersValueType
OptimizerParameters< ParametersValueType > ParametersType
Image< OutputVectorType, Dimension > DisplacementFieldType
Point< TParametersValueType, VOutputDimension > OutputPointType
typename InverseTransformBaseType::Pointer InverseTransformBasePointer
Vector< TParametersValueType, VInputDimension > InputVectorType
VectorImage< TParametersValueType, Dimension > VectorImageDisplacementFieldType
Vector< TParametersValueType, VOutputDimension > OutputVectorType
DisplacementFieldType::Pointer m_DisplacementField
Class to hold and manage parameters of type Image<Vector<...>,...>, used in Transforms,...
Templated n-dimensional image class.
Definition itkImage.h:89
Point< PointValueType, VImageDimension > PointType
Vector< SpacingValueType, VImageDimension > SpacingType
Matrix< SpacePrecisionType, VImageDimension, VImageDimension > DirectionType
Control indentation during Print() invocation.
Definition itkIndent.h:50
SmartPointer< Self > Pointer
Implements transparent reference counting.
Base class for all vector image interpolators.
typename VelocityFieldType::SpacingType SpacingType
typename VelocityFieldInterpolatorType::Pointer VelocityFieldInterpolatorPointer
void SetFixedParameters(const FixedParametersType &) override
typename DisplacementFieldType::Pointer DisplacementFieldPointer
~VelocityFieldTransform() override=default
Array< ParametersValueType > DerivativeType
typename VelocityFieldType::Pointer VelocityFieldPointer
typename VelocityFieldType::PixelType PixelType
typename VelocityFieldType::PointType PointType
DisplacementFieldType::Pointer CopyDisplacementField(const DisplacementFieldType *) const
typename VelocityFieldType::DirectionType DirectionType
Image< OutputVectorType, VelocityFieldDimension > VelocityFieldType
VelocityFieldInterpolatorType::Pointer m_VelocityFieldInterpolator
OptimizerParameters< FixedParametersValueType > FixedParametersType
void SetDisplacementField(DisplacementFieldType *displacementField) override
DisplacementFieldTransform< TParametersValueType, VDimension > Superclass
bool GetInverse(Self *inverse) const
static constexpr unsigned int VelocityFieldDimension
ImageVectorOptimizerParametersHelper< ScalarType, Dimension, VelocityFieldDimension > OptimizerParametersHelperType
ParametersValueType ScalarType
virtual void SetFixedParametersFromVelocityField() const
void PrintSelf(std::ostream &os, Indent indent) const override
typename VelocityFieldType::RegionType RegionType
VectorInterpolateImageFunction< VelocityFieldType, ScalarType > VelocityFieldInterpolatorType
void UpdateTransformParameters(const DerivativeType &update, ScalarType factor=1.0) override
typename VelocityFieldType::IndexType IndexType
Image< OutputVectorType, Dimension > DisplacementFieldType
virtual void SetVelocityField(VelocityFieldType *)
typename VelocityFieldType::SizeType SizeType
static constexpr unsigned int Dimension
typename InverseTransformBaseType::Pointer InverseTransformBasePointer
SmartPointer< const Self > ConstPointer
InverseTransformBasePointer GetInverseTransform() const override
LightObject::Pointer InternalClone() const override
virtual void SetVelocityFieldInterpolator(VelocityFieldInterpolatorType *)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....