18 #ifndef sitkDisplacementFieldTransform_h
19 #define sitkDisplacementFieldTransform_h
67 return std::string(
"DisplacementFieldTransform");
82 SITK_RETURN_SELF_TYPE_HEADER
83 SetDisplacementField(
Image &);
89 GetDisplacementField()
const;
94 SITK_RETURN_SELF_TYPE_HEADER
95 SetInverseDisplacementField(
Image &);
101 GetInverseDisplacementField()
const;
104 SITK_RETURN_SELF_TYPE_HEADER
108 SITK_RETURN_SELF_TYPE_HEADER
110 SITK_RETURN_SELF_TYPE_HEADER
111 SetSmoothingGaussianOnUpdate(
double varianceForUpdateField = 1.75,
double varianceForTotalField = 0.5);
112 SITK_RETURN_SELF_TYPE_HEADER
113 SetSmoothingBSplineOnUpdate(
114 const std::vector<unsigned int> & numberOfControlPointsForUpdateField = std::vector<unsigned int>(3, 4),
115 const std::vector<unsigned int> & numberOfControlPointsForTotalField = std::vector<unsigned int>(3, 4),
116 bool enforceStationaryBoundary =
true,
117 unsigned int order = 3);
122 SetPimpleTransform(std::unique_ptr<PimpleTransformBase> && pimpleTransform)
override;
129 template <
typename TransformType>
133 TransformType * t =
dynamic_cast<TransformType *
>(transform);
134 if (t && (
typeid(*t) ==
typeid(TransformType)))
144 template <
typename TransformType>
146 InternalInitialization(TransformType * transform);
148 template <
typename TDisplacementFieldTransform>
150 InternalGetDisplacementField(
const TDisplacementFieldTransform * itkDisplacementTx);
151 template <
typename TDisplacementFieldTransform>
153 InternalGetInverseDisplacementField(
const TDisplacementFieldTransform * itkDisplacementTx);
155 template <
typename TDisplacementFieldTransform>
157 InternalSetSmoothingOff(TDisplacementFieldTransform * itkDisplacement);
158 template <
typename TDisplacementFieldTransform>
160 InternalSetSmoothingGaussianOnUpdate(TDisplacementFieldTransform * itkDisplacement,
161 double varianceForUpdateField,
162 double varianceForTotalField);
163 template <
typename TDisplacementFieldTransform>
165 InternalSetSmoothingBSplineOnUpdate(TDisplacementFieldTransform * itkDisplacement,
166 const std::vector<unsigned int> & numberOfControlPointsForUpdateField,
167 const std::vector<unsigned int> & numberOfControlPointsForTotalField,
168 bool enforceStationaryBoundary,
172 static PimpleTransformBase *
173 CreateDisplacementFieldPimpleTransform(
unsigned int dimension);
186 std::function<void(
const std::vector<unsigned int> &,
const std::vector<unsigned int> &,
bool,
unsigned int)>
192 #endif // sitkDisplacementFieldTransform_h