18#ifndef itkCentralDifferenceImageFunction_h
19#define itkCentralDifferenceImageFunction_h
73template <
typename TInputImage,
74 typename TCoordinate = float,
202 itkSetMacro(UseImageDirection,
bool);
203 itkGetConstMacro(UseImageDirection,
bool);
204 itkBooleanMacro(UseImageDirection);
215 template <
typename T>
222 template <
typename Type>
226 OutputTypeSpecializationStructType<OutputType>)
const;
229 template <
typename Type>
233 OutputTypeSpecializationStructType<Type>)
const;
236 template <
typename Type>
240 OutputTypeSpecializationStructType<OutputType>)
const;
243 template <
typename Type>
247 OutputTypeSpecializationStructType<Type>)
const;
251 template <
typename Type>
255 OutputTypeSpecializationStructType<OutputType>)
const;
258 template <
typename Type>
271#ifndef ITK_MANUAL_INSTANTIATION
272# include "itkCentralDifferenceImageFunction.hxx"
OutputType EvaluateAtIndex(const IndexType &index) const override
DefaultConvertPixelTraits< OutputType > OutputConvertType
ContinuousIndex< CoordinateRepresentationType, Self::ImageDimension > ContinuousIndexType
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
InterpolatorPointer m_Interpolator
OutputType Evaluate(const PointType &point) const override
InterpolateImageFunction< TInputImage, TCoordinate > InterpolatorType
SmartPointer< const Self > ConstPointer
void EvaluateSpecialized(const PointType &point, OutputType &orientedDerivative, OutputTypeSpecializationStructType< OutputType >) const
~CentralDifferenceImageFunction() override=default
CentralDifferenceImageFunction()
typename InputImageType::PixelType InputPixelType
typename InterpolatorType::Pointer InterpolatorPointer
virtual void SetInterpolator(InterpolatorType *interpolator)
TInputImage InputImageType
CentralDifferenceImageFunction Self
typename TInputImage::SpacingType SpacingType
Point< CoordinateRepresentationType, Self::ImageDimension > PointType
static constexpr unsigned int ImageDimension
CovariantVector< double, MovingImageType::ImageDimension > OutputType
void EvaluateSpecialized(const PointType &point, OutputType &derivative, OutputTypeSpecializationStructType< Type >) const
CovariantVector< OutputValueType, Self::ImageDimension > ScalarDerivativeType
typename InputImageType::IndexType IndexType
SmartPointer< Self > Pointer
void EvaluateAtContinuousIndexSpecialized(const ContinuousIndexType &cindex, OutputType &derivative, OutputTypeSpecializationStructType< Type >) const
typename OutputConvertType::ComponentType OutputValueType
void EvaluateAtIndexSpecialized(const IndexType &index, OutputType &orientedDerivative, OutputTypeSpecializationStructType< OutputType >) const
void EvaluateAtContinuousIndexSpecialized(const ContinuousIndexType &cindex, OutputType &orientedDerivative, OutputTypeSpecializationStructType< OutputType >) const
DefaultConvertPixelTraits< InputPixelType > InputPixelConvertType
ImageFunction< TInputImage, TOutputType, TCoordinate > Superclass
void EvaluateAtIndexSpecialized(const IndexType &index, OutputType &derivative, OutputTypeSpecializationStructType< Type >) const
void PrintSelf(std::ostream &os, Indent indent) const override
void SetInputImage(const TInputImage *inputData) override
A templated class holding a n-Dimensional covariant vector.
Traits class used to by ConvertPixels to convert blocks of pixels.
typename OutputType::ComponentType ComponentType
typename InputImageType::IndexType IndexType
Point< TCoordinate, Self::ImageDimension > PointType
ContinuousIndex< TCoordinate, Self::ImageDimension > ContinuousIndexType
Control indentation during Print() invocation.
Base class for all image interpolators.
SmartPointer< Self > Pointer
Implements transparent reference counting.
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