18#ifndef itkDisplacementFieldToBSplineImageFilter_h
19#define itkDisplacementFieldToBSplineImageFilter_h
41template <
typename TInputImage,
42 typename TInputPointSet = PointSet<typename TInputImage::PixelType, TInputImage::ImageDimension>,
43 typename TOutputImage = TInputImage>
61 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
72 using PixelType =
typename OutputFieldType::PixelType;
82 using RealType =
typename VectorType::RealValueType;
101 this->SetInput(0, field);
105 const InputFieldType *
108 return this->GetInput(0);
124 this->SetConfidenceImage(image);
129 const RealImageType *
144 this->SetPointSet(points);
149 const InputPointSetType *
174 this->SetBSplineDomainFromImage(
const_cast<RealImageType *
>(image));
185 this->SetBSplineDomainFromImage(
const_cast<InputFieldType *
>(field));
204 itkSetMacro(UseInputFieldToDefineTheBSplineDomain,
bool);
205 itkGetConstMacro(UseInputFieldToDefineTheBSplineDomain,
bool);
206 itkBooleanMacro(UseInputFieldToDefineTheBSplineDomain);
211 itkSetMacro(SplineOrder,
unsigned int);
216 itkGetConstMacro(SplineOrder,
unsigned int);
253 auto nlevels = MakeFilled<ArrayType>(n);
254 this->SetNumberOfFittingLevels(nlevels);
269 itkBooleanMacro(EstimateInverse);
270 itkSetMacro(EstimateInverse,
bool);
271 itkGetConstMacro(EstimateInverse,
bool);
277 itkBooleanMacro(EnforceStationaryBoundary);
278 itkSetMacro(EnforceStationaryBoundary,
bool);
279 itkGetConstMacro(EnforceStationaryBoundary,
bool);
298 bool m_EstimateInverse{
false };
299 bool m_EnforceStationaryBoundary{
true };
300 unsigned int m_SplineOrder{ 3 };
305 bool m_UsePointWeights{
false };
312 bool m_BSplineDomainIsDefined{
true };
313 bool m_UseInputFieldToDefineTheBSplineDomain{
false };
318#ifndef ITK_MANUAL_INSTANTIATION
319# include "itkDisplacementFieldToBSplineImageFilter.hxx"
Image filter which provides a B-spline output approximation.
Class which takes a dense displacement field image and/or a set of points with associated displacemen...
const InputFieldType * GetDisplacementField() const
typename BSplineFilterType::ArrayType ArrayType
const InputPointSetType * GetPointSet() const
typename OutputFieldType::PointType OriginType
typename OutputFieldType::SpacingType SpacingType
const RealImageType * GetConfidenceImage() const
typename OutputFieldType::IndexType IndexType
InputFieldType DisplacementFieldType
typename InputPointSetType::PointsContainer PointsContainerType
void SetPointSetConfidenceWeights(WeightsContainerType *weights)
typename OutputFieldType::RegionType RegionType
typename InputFieldType::PointType InputFieldPointType
const DisplacementFieldControlPointLatticeType * GetDisplacementFieldControlPointLattice() const
typename InputPointSetType::PixelType PointDataType
TInputPointSet InputPointSetType
void SetInput1(const RealImageType *image)
void SetBSplineDomainFromImage(const InputFieldType *field)
typename InputPointSetType::PointType PointType
typename OutputFieldType::PixelType VectorType
typename OutputFieldType::SizeType SizeType
void SetConfidenceImage(const RealImageType *image)
typename BSplineFilterType::PointDataImageType DisplacementFieldControlPointLatticeType
TInputImage InputFieldType
typename OutputFieldType::PixelType PixelType
void PrintSelf(std::ostream &os, Indent indent) const override
void SetBSplineDomain(OriginType, SpacingType, SizeType, DirectionType)
void SetInput2(const InputPointSetType *points)
typename BSplineFilterType::WeightsContainerType WeightsContainerType
void SetBSplineDomainFromImage(InputFieldType *)
void SetDisplacementField(const InputFieldType *field)
typename VectorType::RealValueType RealType
void SetPointSet(const InputPointSetType *points)
OutputFieldType InverseDisplacementFieldType
TOutputImage OutputFieldType
void GenerateData() override
void SetBSplineDomainFromImage(const RealImageType *image)
typename InputPointSetType::PointDataContainer PointDataContainerType
DisplacementFieldToBSplineImageFilter()
typename OutputFieldType::DirectionType DirectionType
void SetBSplineDomainFromImage(RealImageType *)
void SetNumberOfFittingLevels(unsigned int n)
~DisplacementFieldToBSplineImageFilter() override=default
Base class for filters that take an image as input and produce an image as output.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
SmartPointer< Self > Pointer
ImageBaseType::DirectionType DirectionType
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::PointType PointType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....