18 #ifndef itkMultiScaleHessianBasedMeasureImageFilter_h
19 #define itkMultiScaleHessianBasedMeasureImageFilter_h
64 template<
typename TInputImage,
65 typename THessianImage,
66 typename TOutputImage = TInputImage >
91 static constexpr
unsigned int ImageDimension = InputImageType ::ImageDimension;
116 itkSetMacro(SigmaMinimum,
double);
117 itkGetConstMacro(SigmaMinimum,
double);
121 itkSetMacro(SigmaMaximum,
double);
122 itkGetConstMacro(SigmaMaximum,
double);
126 itkSetMacro(NumberOfSigmaSteps,
unsigned int);
127 itkGetConstMacro(NumberOfSigmaSteps,
unsigned int);
143 itkSetMacro(NonNegativeHessianBasedMeasure,
bool);
144 itkGetConstMacro(NonNegativeHessianBasedMeasure,
bool);
145 itkBooleanMacro(NonNegativeHessianBasedMeasure);
148 typedef enum { EquispacedSigmaSteps = 0,
149 LogarithmicSigmaSteps = 1 } SigmaStepMethodType;
153 itkSetMacro(SigmaStepMethod, SigmaStepMethodType);
154 itkGetConstMacro(SigmaStepMethod, SigmaStepMethodType);
158 void SetSigmaStepMethodToEquispaced();
161 void SetSigmaStepMethodToLogarithmic();
165 const HessianImageType * GetHessianOutput()
const;
169 const ScalesImageType * GetScalesOutput()
const;
173 itkSetMacro(GenerateScalesOutput,
bool);
174 itkGetConstMacro(GenerateScalesOutput,
bool);
175 itkBooleanMacro(GenerateScalesOutput);
180 itkSetMacro(GenerateHessianOutput,
bool);
181 itkGetConstMacro(GenerateHessianOutput,
bool);
182 itkBooleanMacro(GenerateHessianOutput);
191 void PrintSelf(std::ostream & os,
Indent indent)
const override;
194 void GenerateData()
override;
196 void EnlargeOutputRequestedRegion(
DataObject *)
override;
198 using Superclass::MakeOutput;
202 void UpdateMaximumResponse(
double sigma);
204 double ComputeSigmaValue(
int scaleLevel);
206 void AllocateUpdateBuffer();
227 #ifndef ITK_MANUAL_INSTANTIATION
228 #include "itkMultiScaleHessianBasedMeasureImageFilter.hxx"
typename TOutputImage::RegionType OutputRegionType
Superclass::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
UpdateBufferType::Pointer m_UpdateBuffer
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
bool m_GenerateScalesOutput
Base class for all process objects that output image data.
TInputImage InputImageType
A filter to enhance structures using Hessian eigensystem-based measures in a multiscale framework...
TOutputImage OutputImageType
Computes the Hessian matrix of an image by convolution with the Second and Cross derivatives of a Gau...
SigmaStepMethodType m_SigmaStepMethod
HessianFilterType::Pointer m_HessianFilter
bool m_GenerateHessianOutput
HessianToMeasureFilterType::Pointer m_HessianToMeasureFilter
typename TOutputImage::PixelType OutputPixelType
typename UpdateBufferType::ValueType BufferValueType
THessianImage HessianImageType
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
typename TInputImage::PixelType InputPixelType
ImageBaseType::RegionType RegionType
bool m_NonNegativeHessianBasedMeasure
Base class for all data objects in ITK.
Templated n-dimensional image class.
unsigned int m_NumberOfSigmaSteps