ITK  5.2.0
Insight Toolkit
itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.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  * http://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 itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_h
19 #define itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_h
20 
22 
23 namespace itk
24 {
25 
38 template <typename TParametersValueType, unsigned int NDimensions>
40  : public TimeVaryingVelocityFieldTransform<TParametersValueType, NDimensions>
41 {
42 public:
44 
50 
53 
55  itkNewMacro(Self);
56 
58  static constexpr unsigned int TimeVaryingVelocityFieldDimension = NDimensions + 1;
59 
62  using DerivativeType = typename Superclass::DerivativeType;
63  using DerivativeValueType = typename DerivativeType::ValueType;
64  using VelocityFieldType = typename Superclass::VelocityFieldType;
65 
66  using TimeVaryingVelocityFieldType = typename Superclass::TimeVaryingVelocityFieldType;
67  using TimeVaryingVelocityFieldPointer = typename Superclass::TimeVaryingVelocityFieldPointer;
68 
69  using DisplacementVectorType = typename VelocityFieldType::PixelType;
70  using DisplacementVectorValueType = typename DisplacementVectorType::ValueType;
71 
72 
77  itkSetMacro(GaussianSpatialSmoothingVarianceForTheUpdateField, ScalarType);
78  itkGetConstReferenceMacro(GaussianSpatialSmoothingVarianceForTheUpdateField, ScalarType);
80 
85  itkSetMacro(GaussianTemporalSmoothingVarianceForTheUpdateField, ScalarType);
86  itkGetConstReferenceMacro(GaussianTemporalSmoothingVarianceForTheUpdateField, ScalarType);
88 
93  itkSetMacro(GaussianSpatialSmoothingVarianceForTheTotalField, ScalarType);
94  itkGetConstReferenceMacro(GaussianSpatialSmoothingVarianceForTheTotalField, ScalarType);
96 
101  itkSetMacro(GaussianTemporalSmoothingVarianceForTheTotalField, ScalarType);
102  itkGetConstReferenceMacro(GaussianTemporalSmoothingVarianceForTheTotalField, ScalarType);
104 
113  void
114  UpdateTransformParameters(const DerivativeType & update, ScalarType factor = 1.0) override;
115 
121  GaussianSmoothTimeVaryingVelocityField(VelocityFieldType *, ScalarType, ScalarType);
122 
123 protected:
126  void
127  PrintSelf(std::ostream & os, Indent indent) const override;
128 
132  ModifiedTimeType m_GaussianSmoothingTempFieldModifiedTime{ 0 };
133 
141 };
142 
143 } // end namespace itk
144 
145 #ifndef ITK_MANUAL_INSTANTIATION
146 # include "itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.hxx"
147 #endif
148 
149 #endif // itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_h
itkTimeVaryingVelocityFieldTransform.h
itk::ModifiedTimeType
SizeValueType ModifiedTimeType
Definition: itkIntTypes.h:102
itk::TimeVaryingVelocityFieldTransform::ScalarType
typename Superclass::ScalarType ScalarType
Definition: itkTimeVaryingVelocityFieldTransform.h:87
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::m_GaussianSpatialSmoothingVarianceForTheUpdateField
ScalarType m_GaussianSpatialSmoothingVarianceForTheUpdateField
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:137
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::m_GaussianTemporalSmoothingVarianceForTheUpdateField
ScalarType m_GaussianTemporalSmoothingVarianceForTheUpdateField
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:139
itk::TimeVaryingVelocityFieldTransform
Transform objects based on integration of a time-varying velocity field.
Definition: itkTimeVaryingVelocityFieldTransform.h:54
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::DisplacementVectorType
typename VelocityFieldType::PixelType DisplacementVectorType
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:69
itk::DisplacementFieldTransform::DerivativeType
typename Superclass::DerivativeType DerivativeType
Definition: itkDisplacementFieldTransform.h:154
itk::DisplacementFieldTransform::ScalarType
typename Superclass::ScalarType ScalarType
Definition: itkDisplacementFieldTransform.h:107
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::TimeVaryingVelocityFieldType
typename Superclass::TimeVaryingVelocityFieldType TimeVaryingVelocityFieldType
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:66
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::m_GaussianTemporalSmoothingVarianceForTheTotalField
ScalarType m_GaussianTemporalSmoothingVarianceForTheTotalField
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:140
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::DisplacementVectorValueType
typename DisplacementVectorType::ValueType DisplacementVectorValueType
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:70
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::m_GaussianSpatialSmoothingVarianceForTheTotalField
ScalarType m_GaussianSpatialSmoothingVarianceForTheTotalField
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:138
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::VelocityFieldType
typename Superclass::VelocityFieldType VelocityFieldType
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:64
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform
Modifies the UpdateTransformParameters method to peform a Gaussian smoothing of the velocity field af...
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:39
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::DerivativeValueType
typename DerivativeType::ValueType DerivativeValueType
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:63
itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform::TimeVaryingVelocityFieldPointer
typename Superclass::TimeVaryingVelocityFieldPointer TimeVaryingVelocityFieldPointer
Definition: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h:67