18 #ifndef itkDisplacementFieldToBSplineImageFilter_h
19 #define itkDisplacementFieldToBSplineImageFilter_h
41 template <
typename TInputImage,
42 typename TInputPointSet = PointSet<typename TInputImage::PixelType, TInputImage::ImageDimension>,
43 typename TOutputImage = TInputImage>
58 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
69 using PixelType =
typename OutputFieldType::PixelType;
79 using RealType =
typename VectorType::RealValueType;
98 this->SetInput(0, field);
102 const InputFieldType *
105 return this->GetInput(0);
116 this->SetNthInput(1, const_cast<RealImageType *>(image));
121 this->SetConfidenceImage(image);
126 const RealImageType *
136 this->SetNthInput(2, const_cast<InputPointSetType *>(points));
141 this->SetPointSet(points);
146 const InputPointSetType *
154 SetPointSetConfidenceWeights(WeightsContainerType * weights);
157 const DisplacementFieldControlPointLatticeType *
160 return static_cast<const DisplacementFieldControlPointLatticeType *>(this->GetOutput(1));
165 SetBSplineDomainFromImage(RealImageType *);
171 this->SetBSplineDomainFromImage(const_cast<RealImageType *>(image));
176 SetBSplineDomainFromImage(InputFieldType *);
182 this->SetBSplineDomainFromImage(const_cast<InputFieldType *>(field));
189 itkGetConstMacro(BSplineDomainOrigin, OriginType);
192 itkGetConstMacro(BSplineDomainSpacing, SpacingType);
195 itkGetConstMacro(BSplineDomainSize,
SizeType);
201 itkSetMacro(UseInputFieldToDefineTheBSplineDomain,
bool);
202 itkGetConstMacro(UseInputFieldToDefineTheBSplineDomain,
bool);
203 itkBooleanMacro(UseInputFieldToDefineTheBSplineDomain);
208 itkSetMacro(SplineOrder,
unsigned int);
213 itkGetConstMacro(SplineOrder,
unsigned int);
222 itkSetMacro(NumberOfControlPoints, ArrayType);
231 itkGetConstMacro(NumberOfControlPoints, ArrayType);
239 itkSetMacro(NumberOfFittingLevels, ArrayType);
253 this->SetNumberOfFittingLevels(nlevels);
262 itkGetConstMacro(NumberOfFittingLevels, ArrayType);
267 itkBooleanMacro(EstimateInverse);
268 itkSetMacro(EstimateInverse,
bool);
269 itkGetConstMacro(EstimateInverse,
bool);
275 itkBooleanMacro(EnforceStationaryBoundary);
276 itkSetMacro(EnforceStationaryBoundary,
bool);
277 itkGetConstMacro(EnforceStationaryBoundary,
bool);
289 PrintSelf(std::ostream & os,
Indent indent)
const override;
293 GenerateData()
override;
296 bool m_EstimateInverse{
false };
297 bool m_EnforceStationaryBoundary{
true };
298 unsigned int m_SplineOrder{ 3 };
303 bool m_UsePointWeights{
false };
310 bool m_BSplineDomainIsDefined{
true };
311 bool m_UseInputFieldToDefineTheBSplineDomain{
false };
316 #ifndef ITK_MANUAL_INSTANTIATION
317 # include "itkDisplacementFieldToBSplineImageFilter.hxx"