18#ifndef itkWarpImageFilter_h
19#define itkWarpImageFilter_h
84template <
typename TInputImage,
typename TOutputImage,
typename TDisplacementField>
107 using typename Superclass::InputImageType;
108 using typename Superclass::InputImagePointer;
109 using typename Superclass::OutputImageType;
110 using typename Superclass::OutputImagePointer;
111 using typename Superclass::InputImageConstPointer;
120 static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
121 static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension;
122 static constexpr unsigned int DisplacementFieldDimension = TDisplacementField::ImageDimension;
229#ifdef ITK_USE_CONCEPT_CHECKING
281 bool m_DefFieldSameInformation{};
297#ifndef ITK_MANUAL_INSTANTIATION
298# include "itkWarpImageFilter.hxx"
Base class for templated image classes.
Base class for all process objects that output image data.
typename OutputImageType::RegionType OutputImageRegionType
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Base class for all image interpolators.
Linearly interpolate an image at specified positions.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Warps an image using an input displacement field.
void GenerateInputRequestedRegion() override
typename OutputImageType::SizeType SizeType
void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) override
void GenerateOutputInformation() override
void BeforeThreadedGenerateData() override
TDisplacementField DisplacementFieldType
typename InterpolatorType::Pointer InterpolatorPointer
itkGetInputMacro(DisplacementField, DisplacementFieldType)
typename OutputImageType::SpacingType SpacingType
void EvaluateDisplacementAtPhysicalPoint(const PointType &point, DisplacementType &output)
void VerifyInputInformation() const override
typename OutputImageType::IndexType IndexType
virtual void SetOutputSpacing(const double *spacing)
typename TOutputImage::DirectionType DirectionType
typename DisplacementFieldType::PixelType DisplacementType
virtual void SetOutputOrigin(const double *origin)
void EvaluateDisplacementAtPhysicalPoint(const PointType &point, const DisplacementFieldType *fieldPtr, DisplacementType &output)
itkSetInputMacro(DisplacementField, DisplacementFieldType)
typename OutputImageType::InternalPixelType PixelComponentType
typename OutputImageType::IndexValueType IndexValueType
typename OutputImageType::PixelType PixelType
void SetOutputParametersFromImage(const ImageBaseType *image)
void PrintSelf(std::ostream &os, Indent indent) const override
typename DisplacementFieldType::Pointer DisplacementFieldPointer
void AfterThreadedGenerateData() override
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
ImageBaseType::DirectionType DirectionType
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents