18 #ifndef itkMultiScaleHessianBasedMeasureImageFilter_h
19 #define itkMultiScaleHessianBasedMeasureImageFilter_h
23 #include "ITKImageFeatureExport.h"
46 extern ITKImageFeature_EXPORT std::ostream &
87 template <
typename TInputImage,
typename THessianImage,
typename TOutputImage = TInputImage>
112 static constexpr
unsigned int ImageDimension = InputImageType ::ImageDimension;
136 itkSetMacro(SigmaMinimum,
double);
137 itkGetConstMacro(SigmaMinimum,
double);
141 itkSetMacro(SigmaMaximum,
double);
142 itkGetConstMacro(SigmaMaximum,
double);
146 itkSetMacro(NumberOfSigmaSteps,
unsigned int);
147 itkGetConstMacro(NumberOfSigmaSteps,
unsigned int);
163 itkSetMacro(NonNegativeHessianBasedMeasure,
bool);
164 itkGetConstMacro(NonNegativeHessianBasedMeasure,
bool);
165 itkBooleanMacro(NonNegativeHessianBasedMeasure);
169 #if !defined(ITK_LEGACY_REMOVE)
171 static constexpr
SigmaStepMethodEnum EquispacedSigmaSteps = SigmaStepMethodEnum::EquispacedSigmaSteps;
172 static constexpr
SigmaStepMethodEnum LogarithmicSigmaSteps = SigmaStepMethodEnum::LogarithmicSigmaSteps;
183 SetSigmaStepMethodToEquispaced();
187 SetSigmaStepMethodToLogarithmic();
192 GetHessianOutput()
const;
197 GetScalesOutput()
const;
201 itkSetMacro(GenerateScalesOutput,
bool);
202 itkGetConstMacro(GenerateScalesOutput,
bool);
203 itkBooleanMacro(GenerateScalesOutput);
208 itkSetMacro(GenerateHessianOutput,
bool);
209 itkGetConstMacro(GenerateHessianOutput,
bool);
210 itkBooleanMacro(GenerateHessianOutput);
220 PrintSelf(std::ostream & os,
Indent indent)
const override;
224 GenerateData()
override;
227 EnlargeOutputRequestedRegion(
DataObject *)
override;
229 using Superclass::MakeOutput;
235 UpdateMaximumResponse(
double sigma);
238 ComputeSigmaValue(
int scaleLevel);
241 AllocateUpdateBuffer();
262 #ifndef ITK_MANUAL_INSTANTIATION
263 # include "itkMultiScaleHessianBasedMeasureImageFilter.hxx"