18#ifndef itkMultiScaleHessianBasedMeasureImageFilter_h
19#define itkMultiScaleHessianBasedMeasureImageFilter_h
23#include "ITKImageFeatureExport.h"
41 EquispacedSigmaSteps = 0,
42 LogarithmicSigmaSteps = 1
46extern ITKImageFeature_EXPORT std::ostream &
86template <
typename TInputImage,
typename THessianImage,
typename TOutputImage = TInputImage>
111 static constexpr unsigned int ImageDimension = InputImageType::ImageDimension;
126 using typename Superclass::DataObjectPointer;
135 itkSetMacro(SigmaMinimum,
double);
136 itkGetConstMacro(SigmaMinimum,
double);
140 itkSetMacro(SigmaMaximum,
double);
141 itkGetConstMacro(SigmaMaximum,
double);
145 itkSetMacro(NumberOfSigmaSteps,
unsigned int);
146 itkGetConstMacro(NumberOfSigmaSteps,
unsigned int);
162 itkSetMacro(NonNegativeHessianBasedMeasure,
bool);
163 itkGetConstMacro(NonNegativeHessianBasedMeasure,
bool);
164 itkBooleanMacro(NonNegativeHessianBasedMeasure);
168#if !defined(ITK_LEGACY_REMOVE)
170 static constexpr SigmaStepMethodEnum EquispacedSigmaSteps = SigmaStepMethodEnum::EquispacedSigmaSteps;
171 static constexpr SigmaStepMethodEnum LogarithmicSigmaSteps = SigmaStepMethodEnum::LogarithmicSigmaSteps;
200 itkSetMacro(GenerateScalesOutput,
bool);
201 itkGetConstMacro(GenerateScalesOutput,
bool);
202 itkBooleanMacro(GenerateScalesOutput);
207 itkSetMacro(GenerateHessianOutput,
bool);
208 itkGetConstMacro(GenerateHessianOutput,
bool);
209 itkBooleanMacro(GenerateHessianOutput);
228 using Superclass::MakeOutput;
242 bool m_NonNegativeHessianBasedMeasure{};
244 double m_SigmaMinimum{};
245 double m_SigmaMaximum{};
247 unsigned int m_NumberOfSigmaSteps{};
256 bool m_GenerateScalesOutput{};
257 bool m_GenerateHessianOutput{};
261#ifndef ITK_MANUAL_INSTANTIATION
262# include "itkMultiScaleHessianBasedMeasureImageFilter.hxx"
Base class for all data objects in ITK.
Computes the Hessian matrix of an image by convolution with the Second and Cross derivatives of a Gau...
Base class for filters that take an image as input and produce an image as output.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
This class contains all enum classes used by MultiScaleHessianBasedMeasureImageFilter class.
A filter to enhance structures using Hessian eigensystem-based measures in a multiscale framework.
void AllocateUpdateBuffer()
void SetSigmaStepMethodToEquispaced()
void EnlargeOutputRequestedRegion(DataObject *) override
TOutputImage OutputImageType
void SetSigmaStepMethodToLogarithmic()
THessianImage HessianImageType
double ComputeSigmaValue(int scaleLevel)
const ScalesImageType * GetScalesOutput() const
typename TInputImage::PixelType InputPixelType
void UpdateMaximumResponse(double sigma)
MultiScaleHessianBasedMeasureImageFilter()
typename TOutputImage::PixelType OutputPixelType
~MultiScaleHessianBasedMeasureImageFilter() override=default
typename UpdateBufferType::ValueType BufferValueType
const HessianImageType * GetHessianOutput() const
TInputImage InputImageType
void PrintSelf(std::ostream &os, Indent indent) const override
void GenerateData() override
typename TOutputImage::RegionType OutputRegionType
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Make a DataObject of the correct type to used as the specified output.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
ImageBaseType::RegionType RegionType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)