18 #ifndef itkDiscreteHessianGaussianImageFunction_h
19 #define itkDiscreteHessianGaussianImageFunction_h
45 template<
typename TInputImage,
typename TOutput =
double >
48 SymmetricSecondRankTensor< TOutput, TInputImage::ImageDimension >,
80 itkStaticConstMacro(ImageDimension2,
unsigned int,
81 InputImageType::ImageDimension);
85 TInputImage::ImageDimension >
92 itkGetStaticConstMacro(ImageDimension2) >
119 virtual OutputType Evaluate(
const PointType & point)
const ITK_OVERRIDE;
122 virtual OutputType EvaluateAtIndex(
const IndexType & index)
const ITK_OVERRIDE;
125 virtual OutputType EvaluateAtContinuousIndex(
126 const ContinuousIndexType & index)
const ITK_OVERRIDE;
132 itkSetMacro(Variance, VarianceArrayType);
133 itkGetConstMacro(Variance,
const VarianceArrayType);
134 itkSetVectorMacro(Variance,
double, VarianceArrayType::Length);
140 m_Variance.Fill(variance);
149 SetVariance(sigma * sigma);
157 itkSetClampMacro(MaximumError,
double, 0.00001, 0.99999);
158 itkGetConstMacro(MaximumError,
double);
164 itkSetMacro(NormalizeAcrossScale,
bool);
165 itkGetConstMacro(NormalizeAcrossScale,
bool);
166 itkBooleanMacro(NormalizeAcrossScale);
170 itkSetMacro(UseImageSpacing,
bool);
171 itkGetConstMacro(UseImageSpacing,
bool);
172 itkBooleanMacro(UseImageSpacing);
179 itkSetMacro(MaximumKernelWidth,
unsigned int);
180 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
184 itkSetMacro(InterpolationMode, InterpolationModeType);
185 itkGetConstMacro(InterpolationMode, InterpolationModeType);
192 virtual void SetInputImage(
const InputImageType *ptr) ITK_OVERRIDE;
206 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
208 void RecomputeGaussianKernel();
249 #ifndef ITK_MANUAL_INSTANTIATION
250 #include "itkDiscreteHessianGaussianImageFunction.hxx"
OperatorImageFunctionPointer m_OperatorImageFunction
~DiscreteHessianGaussianImageFunction()
itk::GaussianDerivativeOperator< TOutput, itkGetStaticConstMacro(ImageDimension2) > GaussianDerivativeOperatorType
KernelArrayType m_KernelArray
Light weight base class for most itk classes.
Superclass::IndexValueType IndexValueType
Superclass::InputPixelType InputPixelType
Neighborhood< TOutput, itkGetStaticConstMacro(ImageDimension2) > KernelType
Represent a symmetric tensor of second rank.
FixedArray< GaussianDerivativeOperatorType, 3 *itkGetStaticConstMacro(ImageDimension2) > GaussianDerivativeOperatorArrayType
Superclass::IndexType IndexType
ImageFunction< TInputImage, SymmetricSecondRankTensor< TOutput, TInputImage::ImageDimension >, TOutput > Superclass
signed long IndexValueType
bool m_NormalizeAcrossScale
VarianceArrayType m_Variance
Compute the convolution of a neighborhood operator with the image at a specific location in space...
SymmetricSecondRankTensor< TOutput, TInputImage::ImageDimension > TensorType
virtual void SetVariance(double variance)
OperatorImageFunctionType::Pointer OperatorImageFunctionPointer
FixedArray< double, itkGetStaticConstMacro(ImageDimension2) > VarianceArrayType
SmartPointer< Self > Pointer
ImageBaseType::PointType PointType
A NeighborhoodOperator whose coefficients are a one dimensional, discrete derivative Gaussian kernel...
InterpolationModeType m_InterpolationMode
unsigned int m_MaximumKernelWidth
virtual void Initialize()
DiscreteHessianGaussianImageFunction(const Self &)
void operator=(const Self &)
Superclass::InputImageType InputImageType
GaussianDerivativeOperatorArrayType m_OperatorArray
Control indentation during Print() invocation.
Superclass::OutputType OutputType
DiscreteHessianGaussianImageFunction Self
Compute the Hessian Gaussian of an image at a specific location in space by calculating discrete seco...
NeighborhoodOperatorImageFunction< InputImageType, TOutput > OperatorImageFunctionType
Evaluates a function of an image at specified position.
void SetSigma(const double sigma)
Superclass::ContinuousIndexType ContinuousIndexType
ImageBaseType::IndexType IndexType
Superclass::PointType PointType
SmartPointer< const Self > ConstPointer