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;
172 itkSetMacro(GenerateScalesOutput,
bool);
173 itkGetConstMacro(GenerateScalesOutput,
bool);
174 itkBooleanMacro(GenerateScalesOutput);
179 itkSetMacro(GenerateHessianOutput,
bool);
180 itkGetConstMacro(GenerateHessianOutput,
bool);
181 itkBooleanMacro(GenerateHessianOutput);
190 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
193 void GenerateData() ITK_OVERRIDE;
195 void EnlargeOutputRequestedRegion(
DataObject *) ITK_OVERRIDE;
197 using Superclass::MakeOutput;
198 virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
201 void UpdateMaximumResponse(
double sigma);
203 double ComputeSigmaValue(
int scaleLevel);
205 void AllocateUpdateBuffer();
209 bool m_NonNegativeHessianBasedMeasure;
211 double m_SigmaMinimum;
212 double m_SigmaMaximum;
214 unsigned int m_NumberOfSigmaSteps;
223 bool m_GenerateScalesOutput;
224 bool m_GenerateHessianOutput;
228 #ifndef ITK_MANUAL_INSTANTIATION
229 #include "itkMultiScaleHessianBasedMeasureImageFilter.hxx"
TInputImage InputImageType
Image< double, itkGetStaticConstMacro(ImageDimension) > UpdateBufferType
Image< ScalesPixelType, itkGetStaticConstMacro(ImageDimension) > ScalesImageType
Base class for all process objects that output image data.
HessianRecursiveGaussianImageFilter< InputImageType, HessianImageType > HessianFilterType
A filter to enhance structures using Hessian eigensystem-based measures in a multiscale framework...
MultiScaleHessianBasedMeasureImageFilter Self
TOutputImage::PixelType OutputPixelType
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
TInputImage::PixelType InputPixelType
THessianImage HessianImageType
Computes the Hessian matrix of an image by convolution with the Second and Cross derivatives of a Gau...
Superclass::DataObjectPointer DataObjectPointer
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
SmartPointer< Self > Pointer
TOutputImage OutputImageType
UpdateBufferType::ValueType BufferValueType
ImageToImageFilter< HessianImageType, OutputImageType > HessianToMeasureFilterType
SmartPointer< const Self > ConstPointer
~MultiScaleHessianBasedMeasureImageFilter()
Base class for all data objects in ITK.
Templated n-dimensional image class.
TOutputImage::RegionType OutputRegionType
ImageToImageFilter< TInputImage, TOutputImage > Superclass