18#ifndef itkGaussianBlurImageFunction_h
19#define itkGaussianBlurImageFunction_h
38template <
typename TInputImage,
typename TOutput =
double>
67 static constexpr unsigned int ImageDimension = InputImageType::ImageDimension;
152 itkSetMacro(MaximumKernelWidth,
int);
153 itkGetConstMacro(MaximumKernelWidth,
int);
161 itkSetMacro(UseImageSpacing,
bool);
162 itkGetConstMacro(UseImageSpacing,
bool);
163 itkBooleanMacro(UseImageSpacing);
211#ifndef ITK_MANUAL_INSTANTIATION
212# include "itkGaussianBlurImageFunction.hxx"
Simulate a standard C array with copy semantics.
itk::FixedArray< double, Self::ImageDimension > ErrorArrayType
typename GaussianFunctionType::Pointer GaussianFunctionPointer
void SetSigma(const double *sigma)
SmartPointer< Self > Pointer
GaussianBlurImageFunction Self
itk::FixedArray< double, Self::ImageDimension > ExtentArrayType
void SetSigma(const float *sigma)
void SetSigma(const double sigma)
~GaussianBlurImageFunction() override=default
itk::FixedArray< double, Self::ImageDimension > SigmaArrayType
GaussianOperator< TOutput, Self::ImageDimension > GaussianOperatorType
FixedArray< NeighborhoodType, Self::ImageDimension > OperatorArrayType
OperatorArrayType m_ContinuousOperatorArray
TInputImage InputImageType
void RecomputeContinuousGaussianKernel(const double *offset) const
NeighborhoodOperatorImageFunction< InternalImageType, TOutput > OperatorInternalImageFunctionType
void SetExtent(const double *extent)
SmartPointer< const Self > ConstPointer
InternalImagePointer m_InternalImage
TOutput Evaluate(const PointType &point) const override
OperatorArrayType m_OperatorArray
GaussianFunctionPointer m_GaussianFunction
typename OperatorInternalImageFunctionType::Pointer OperatorInternalImageFunctionPointer
TOutput EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
void PrintSelf(std::ostream &os, Indent indent) const override
typename NumericTraits< InputPixelType >::RealType InputPixelRealType
OperatorImageFunctionPointer m_OperatorImageFunction
Neighborhood< TOutput, Self::ImageDimension > NeighborhoodType
GaussianSpatialFunction< TOutput, 1 > GaussianFunctionType
typename InternalImageType::Pointer InternalImagePointer
typename OperatorImageFunctionType::Pointer OperatorImageFunctionPointer
typename InputImageType::IndexType IndexType
virtual TOutput EvaluateAtIndex(const IndexType &index, const OperatorArrayType &operatorArray) const
itk::Image< InputPixelRealType, Self::ImageDimension > InternalImageType
ImageFunction< TInputImage, TOutput > Superclass
Point< TCoordinate, Self::ImageDimension > PointType
ContinuousIndex< TCoordinate, Self::ImageDimension > ContinuousIndexType
typename InputImageType::PixelType InputPixelType
NeighborhoodOperatorImageFunction< InputImageType, TOutput > OperatorImageFunctionType
unsigned int m_FilterDimensionality
OperatorInternalImageFunctionPointer m_OperatorInternalImageFunction
GaussianBlurImageFunction()
ErrorArrayType m_MaximumError
static constexpr unsigned int ImageDimension
void RecomputeGaussianKernel()
void SetExtent(const double extent)
TOutput EvaluateAtIndex(const IndexType &index) const override
void SetInputImage(const InputImageType *ptr) override
A NeighborhoodOperator whose coefficients are a one dimensional, discrete Gaussian kernel.
N-dimensional Gaussian spatial function class.
SmartPointer< Self > Pointer
typename InputImageType::IndexType IndexType
Point< TCoordinate, Self::ImageDimension > PointType
ContinuousIndex< TCoordinate, Self::ImageDimension > ContinuousIndexType
Templated n-dimensional image class.
SmartPointer< Self > Pointer
Control indentation during Print() invocation.
Compute the convolution of a neighborhood operator with the image at a specific location in space,...
SmartPointer< Self > Pointer
A light-weight container object for storing an N-dimensional neighborhood of values.
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