18 #ifndef sitkDisplacementFieldTransform_h
19 #define sitkDisplacementFieldTransform_h
63 std::string
GetName()
const {
return std::string (
"DisplacementFieldTransform"); }
77 SITK_RETURN_SELF_TYPE_HEADER SetDisplacementField(
Image &);
82 Image GetDisplacementField()
const;
87 SITK_RETURN_SELF_TYPE_HEADER SetInverseDisplacementField(
Image &);
92 Image GetInverseDisplacementField()
const;
98 SITK_RETURN_SELF_TYPE_HEADER SetSmoothingOff();
99 SITK_RETURN_SELF_TYPE_HEADER SetSmoothingGaussianOnUpdate(
double varianceForUpdateField=1.75,
double varianceForTotalField=0.5 );
100 SITK_RETURN_SELF_TYPE_HEADER SetSmoothingBSplineOnUpdate(
const std::vector<unsigned int> &numberOfControlPointsForUpdateField = std::vector<unsigned int>(3,4),
101 const std::vector<unsigned int> &numberOfControlPointsForTotalField = std::vector<unsigned int>(3,4),
102 bool enforceStationaryBoundary=
true,
103 unsigned int order=3 );
108 virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
112 using Superclass::AddTransform;
118 template<
typename TransformType >
119 void operator() (
void )
const
121 TransformType *t =
dynamic_cast<TransformType*
>(transform);
122 if (t && (
typeid(*t)==
typeid(TransformType)))
131 template <
typename TransformType>
132 void InternalInitialization(TransformType *transform);
134 template<
typename TDisplacementFieldTransform >
135 static Image InternalGetDisplacementField(
const TDisplacementFieldTransform *itkDisplacementTx );
136 template<
typename TDisplacementFieldTransform >
137 static Image InternalGetInverseDisplacementField(
const TDisplacementFieldTransform *itkDisplacementTx );
139 template<
typename TDisplacementFieldTransform >
140 void InternalSetSmoothingOff(TDisplacementFieldTransform *itkDisplacement);
141 template<
typename TDisplacementFieldTransform >
142 void InternalSetSmoothingGaussianOnUpdate( TDisplacementFieldTransform *itkDisplacement,
143 double varianceForUpdateField,
144 double varianceForTotalField );
145 template<
typename TDisplacementFieldTransform >
146 void InternalSetSmoothingBSplineOnUpdate( TDisplacementFieldTransform *itkDisplacement,
147 const std::vector<unsigned int> &numberOfControlPointsForUpdateField,
148 const std::vector<unsigned int> &numberOfControlPointsForTotalField,
149 bool enforceStationaryBoundary,
150 unsigned int order );
153 static PimpleTransformBase *CreateDisplacementFieldPimpleTransform(
unsigned int dimension);
166 nsstd::function<void (const std::vector<unsigned int> &,
const std::vector<unsigned int>&, bool,
unsigned int)> m_pfSetSmoothingBSplineOnUpdate;
173 #endif // sitkDisplacementFieldTransform_h
#define SITKCommon_EXPORT
The main Image class for SimpleITK.