18 #ifndef sitkDisplacementFieldTransform_h
19 #define sitkDisplacementFieldTransform_h
66 std::string
GetName()
const {
return std::string (
"DisplacementFieldTransform"); }
80 SITK_RETURN_SELF_TYPE_HEADER SetDisplacementField(
Image &);
85 Image GetDisplacementField()
const;
90 SITK_RETURN_SELF_TYPE_HEADER SetInverseDisplacementField(
Image &);
95 Image GetInverseDisplacementField()
const;
101 SITK_RETURN_SELF_TYPE_HEADER SetSmoothingOff();
102 SITK_RETURN_SELF_TYPE_HEADER SetSmoothingGaussianOnUpdate(
double varianceForUpdateField=1.75,
double varianceForTotalField=0.5 );
103 SITK_RETURN_SELF_TYPE_HEADER SetSmoothingBSplineOnUpdate(
const std::vector<unsigned int> &numberOfControlPointsForUpdateField = std::vector<unsigned int>(3,4),
104 const std::vector<unsigned int> &numberOfControlPointsForTotalField = std::vector<unsigned int>(3,4),
105 bool enforceStationaryBoundary=
true,
106 unsigned int order=3 );
111 virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
115 using Superclass::AddTransform;
121 template<
typename TransformType >
122 void operator() (
void )
const
124 TransformType *t =
dynamic_cast<TransformType*
>(transform);
125 if (t && (
typeid(*t) ==
typeid(TransformType)))
134 template <
typename TransformType>
135 void InternalInitialization(TransformType *transform);
137 template<
typename TDisplacementFieldTransform >
138 static Image InternalGetDisplacementField(
const TDisplacementFieldTransform *itkDisplacementTx );
139 template<
typename TDisplacementFieldTransform >
140 static Image InternalGetInverseDisplacementField(
const TDisplacementFieldTransform *itkDisplacementTx );
142 template<
typename TDisplacementFieldTransform >
143 void InternalSetSmoothingOff(TDisplacementFieldTransform *itkDisplacement);
144 template<
typename TDisplacementFieldTransform >
145 void InternalSetSmoothingGaussianOnUpdate( TDisplacementFieldTransform *itkDisplacement,
146 double varianceForUpdateField,
147 double varianceForTotalField );
148 template<
typename TDisplacementFieldTransform >
149 void InternalSetSmoothingBSplineOnUpdate( TDisplacementFieldTransform *itkDisplacement,
150 const std::vector<unsigned int> &numberOfControlPointsForUpdateField,
151 const std::vector<unsigned int> &numberOfControlPointsForTotalField,
152 bool enforceStationaryBoundary,
153 unsigned int order );
156 static PimpleTransformBase *CreateDisplacementFieldPimpleTransform(
unsigned int dimension);
169 nsstd::function<void (const std::vector<unsigned int> &,
const std::vector<unsigned int>&, bool,
unsigned int)> m_pfSetSmoothingBSplineOnUpdate;
176 #endif // sitkDisplacementFieldTransform_h
#define SITKCommon_EXPORT
The Image class for SimpleITK.