18 #ifndef __itkMultiScaleHessianBasedMeasureImageFilter_h
19 #define __itkMultiScaleHessianBasedMeasureImageFilter_h
64 template<
typename TInputImage,
65 typename THessianImage,
66 typename TOutputImage = TInputImage >
90 itkStaticConstMacro(ImageDimension,
unsigned int, InputImageType ::ImageDimension);
115 itkSetMacro(SigmaMinimum,
double);
116 itkGetConstMacro(SigmaMinimum,
double);
120 itkSetMacro(SigmaMaximum,
double);
121 itkGetConstMacro(SigmaMaximum,
double);
125 itkSetMacro(NumberOfSigmaSteps,
unsigned int);
126 itkGetConstMacro(NumberOfSigmaSteps,
unsigned int);
142 itkSetMacro(NonNegativeHessianBasedMeasure,
bool);
143 itkGetConstMacro(NonNegativeHessianBasedMeasure,
bool);
144 itkBooleanMacro(NonNegativeHessianBasedMeasure);
147 typedef enum { EquispacedSigmaSteps = 0,
148 LogarithmicSigmaSteps = 1 } SigmaStepMethodType;
152 itkSetMacro(SigmaStepMethod, SigmaStepMethodType);
153 itkGetConstMacro(SigmaStepMethod, SigmaStepMethodType);
157 void SetSigmaStepMethodToEquispaced();
160 void SetSigmaStepMethodToLogarithmic();
164 const HessianImageType * GetHessianOutput()
const;
168 const ScalesImageType * GetScalesOutput()
const;
170 void EnlargeOutputRequestedRegion(
DataObject *);
174 itkSetMacro(GenerateScalesOutput,
bool);
175 itkGetConstMacro(GenerateScalesOutput,
bool);
176 itkBooleanMacro(GenerateScalesOutput);
181 itkSetMacro(GenerateHessianOutput,
bool);
182 itkGetConstMacro(GenerateHessianOutput,
bool);
183 itkBooleanMacro(GenerateHessianOutput);
188 using Superclass::MakeOutput;
194 void PrintSelf(std::ostream & os,
Indent indent)
const;
197 void GenerateData(
void);
200 void UpdateMaximumResponse(
double sigma);
202 double ComputeSigmaValue(
int scaleLevel);
204 void AllocateUpdateBuffer();
208 void operator=(
const Self &);
229 #ifndef ITK_MANUAL_INSTANTIATION
230 #include "itkMultiScaleHessianBasedMeasureImageFilter.hxx"