18 #ifndef itkVectorExpandImageFilter_h
19 #define itkVectorExpandImageFilter_h
24 #if !defined(ITK_LEGACY_REMOVE)
73 template <
typename TInputImage,
typename TOutputImage>
74 class ITK_TEMPLATE_EXPORT VectorExpandImageFilter :
public ImageToImageFilter<TInputImage, TOutputImage>
77 ITK_DISALLOW_COPY_AND_MOVE(VectorExpandImageFilter);
80 using Self = VectorExpandImageFilter;
81 using Superclass = ImageToImageFilter<TInputImage, TOutputImage>;
82 using Pointer = SmartPointer<Self>;
94 itkOverrideGetNameOfClassMacro(VectorExpandImageFilter);
97 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
100 using typename Superclass::InputImageType;
101 using typename Superclass::OutputImageType;
104 using OutputPixelType =
typename OutputImageType::PixelType;
105 using OutputValueType =
typename OutputPixelType::ValueType;
106 using InputPixelType =
typename InputImageType::PixelType;
107 using InputValueType =
typename InputPixelType::ValueType;
116 using ExpandFactorsType = float;
117 using ExpandFactorsArrayType = FixedArray<ExpandFactorsType, ImageDimension>;
120 using CoordinateType = double;
121 # ifndef ITK_FUTURE_LEGACY_REMOVE
122 using CoordRepType ITK_FUTURE_DEPRECATED(
123 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") = CoordinateType;
125 using InterpolatorType = VectorInterpolateImageFunction<InputImageType, CoordinateType>;
127 using DefaultInterpolatorType = VectorLinearInterpolateImageFunction<InputImageType, CoordinateType>;
130 itkSetObjectMacro(Interpolator, InterpolatorType);
131 itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
136 itkSetMacro(ExpandFactors, ExpandFactorsArrayType);
138 SetExpandFactors(
const float factor);
139 itkSetVectorMacro(ExpandFactors,
const unsigned int, ImageDimension);
143 itkGetConstReferenceMacro(ExpandFactors, ExpandFactorsArrayType);
152 GenerateOutputInformation()
override;
160 GenerateInputRequestedRegion()
override;
162 # ifdef ITK_USE_CONCEPT_CHECKING
164 itkConceptMacro(InputHasNumericTraitsCheck, (Concept::HasNumericTraits<InputValueType>));
165 itkConceptMacro(OutputHasNumericTraitsCheck, (Concept::HasNumericTraits<OutputValueType>));
170 VectorExpandImageFilter();
171 ~VectorExpandImageFilter()
override =
default;
173 PrintSelf(std::ostream & os, Indent indent)
const override;
184 DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
override;
189 BeforeThreadedGenerateData()
override;
192 ExpandFactorsArrayType m_ExpandFactors{};
193 InterpolatorPointer m_Interpolator{};
197 # ifndef ITK_MANUAL_INSTANTIATION
198 # include "itkVectorExpandImageFilter.hxx"
201 #endif // ITK_LEGACY_REMOVE