18#ifndef itkVectorExpandImageFilter_h
19#define itkVectorExpandImageFilter_h
24#if !defined(ITK_LEGACY_REMOVE)
73template <
typename TInputImage,
typename TOutputImage>
74class 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 CoordRepType = double;
121 using InterpolatorType = VectorInterpolateImageFunction<InputImageType, CoordRepType>;
123 using DefaultInterpolatorType = VectorLinearInterpolateImageFunction<InputImageType, CoordRepType>;
126 itkSetObjectMacro(Interpolator, InterpolatorType);
127 itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
132 itkSetMacro(ExpandFactors, ExpandFactorsArrayType);
134 SetExpandFactors(
const float factor);
135 itkSetVectorMacro(ExpandFactors,
const unsigned int, ImageDimension);
139 itkGetConstReferenceMacro(ExpandFactors, ExpandFactorsArrayType);
148 GenerateOutputInformation()
override;
156 GenerateInputRequestedRegion()
override;
158# ifdef ITK_USE_CONCEPT_CHECKING
160 itkConceptMacro(InputHasNumericTraitsCheck, (Concept::HasNumericTraits<InputValueType>));
161 itkConceptMacro(OutputHasNumericTraitsCheck, (Concept::HasNumericTraits<OutputValueType>));
166 VectorExpandImageFilter();
167 ~VectorExpandImageFilter()
override =
default;
169 PrintSelf(std::ostream & os, Indent indent)
const override;
180 DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
override;
185 BeforeThreadedGenerateData()
override;
188 ExpandFactorsArrayType m_ExpandFactors{};
189 InterpolatorPointer m_Interpolator{};
193# ifndef ITK_MANUAL_INSTANTIATION
194# include "itkVectorExpandImageFilter.hxx"
Pixel-wise addition of two images.
SmartPointer< const Self > ConstPointer
BinaryGeneratorImageFilter< TInputImage1, TInputImage2, TOutputImage > Superclass
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
ImageBaseType::RegionType RegionType
constexpr unsigned int Dimension
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....