18#ifndef itkGaussianDerivativeImageFunction_h
19#define itkGaussianDerivativeImageFunction_h
49template <
typename TInputImage,
typename TOutput =
double>
51 :
public ImageFunction<TInputImage, Vector<TOutput, TInputImage::ImageDimension>, TOutput>
71 using IndexType =
typename InputImageType::IndexType;
74 static constexpr unsigned int ImageDimension = InputImageType::ImageDimension;
76#if !defined(ITK_LEGACY_REMOVE)
92#if !defined(ITK_LEGACY_REMOVE)
127 itkBooleanMacro(UseImageSpacing);
128 itkGetMacro(UseImageSpacing,
bool);
202#ifndef ITK_MANUAL_INSTANTIATION
203# include "itkGaussianDerivativeImageFunction.hxx"
Simulate a standard C array with copy semantics.
typename Superclass::PointType PointType
GaussianDerivativeSpatialFunction< TOutput, 1 > GaussianDerivativeSpatialFunctionType
void PrintSelf(std::ostream &os, Indent indent) const override
Neighborhood< InputPixelType, Self::ImageDimension > NeighborhoodType
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
FixedArray< OperatorNeighborhoodType, Self::ImageDimension > OperatorArrayType
typename InputImageType::IndexType IndexType
void SetSigma(const double sigma)
void SetSigma(const double *sigma)
std::vector< Offset< ImageDimension > > m_ImageNeighborhoodOffsets[ImageDimension]
static constexpr unsigned int ImageDimension
const double * GetExtent() const
OperatorArrayType m_OperatorArray
typename InputImageType::PixelType InputPixelType
void SetExtent(const double extent)
double m_Extent[ImageDimension]
GaussianDerivativeImageFunction()
typename GaussianDerivativeSpatialFunctionType::Pointer GaussianDerivativeSpatialFunctionPointer
OutputType EvaluateAtIndex(const IndexType &index) const override
void SetExtent(const double *extent)
double m_Sigma[ImageDimension]
void SetUseImageSpacing(const bool val)
Neighborhood< TOutput, Self::ImageDimension > OperatorNeighborhoodType
~GaussianDerivativeImageFunction() override=default
typename Superclass::ContinuousIndexType ContinuousIndexType
OutputType Evaluate(const PointType &point) const override
const double * GetSigma() const
Vector< TOutput, Self::ImageDimension > VectorType
TInputImage InputImageType
ImageFunction< TInputImage, Vector< TOutput, TInputImage::ImageDimension >, TOutput > Superclass
SmartPointer< const Self > ConstPointer
void SetInputImage(const InputImageType *ptr) override
SmartPointer< Self > Pointer
GaussianDerivativeImageFunction Self
void RecomputeGaussianKernel()
const GaussianDerivativeSpatialFunctionPointer m_GaussianDerivativeSpatialFunction
N-dimensional Gaussian spatial function class.
SmartPointer< Self > Pointer
Point< TOutput, Self::ImageDimension > PointType
ContinuousIndex< TOutput, Self::ImageDimension > ContinuousIndexType
Control indentation during Print() invocation.
A light-weight container object for storing an N-dimensional neighborhood of values.
virtual void Modified() const
Implements transparent reference counting.
A templated class holding a n-Dimensional vector.
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