ITK
6.0.0
Insight Toolkit
|
#include <itkMultiScaleHessianBasedMeasureImageFilter.h>
A filter to enhance structures using Hessian eigensystem-based measures in a multiscale framework.
The filter evaluates a Hessian-based enhancement measure, such as vesselness or objectness, at different scale levels. The Hessian-based measure is computed from the Hessian image at each scale level and the best response is selected.
Minimum and maximum sigma value can be set using SetMinSigma and SetMaxSigma methods respectively. The number of scale levels is set using SetNumberOfSigmaSteps method. Exponentially distributed scale levels are computed within the bound set by the minimum and maximum sigma values
The filter computes a second output image (accessed by the GetScalesOutput method) containing the scales at which each pixel gave the best response.
This code was contributed in the Insight Journal paper: "Generalizing vesselness with respect to dimensionality and shape" by Antiga L. https://doi.org/10.54294/urgadx
Definition at line 87 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::ImageToImageFilter< TInputImage, TInputImage > | |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = InputImageType::ImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TInputImage > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TInputImage > | |
static constexpr unsigned int | OutputImageDimension |
Private Member Functions | |
void | AllocateUpdateBuffer () |
double | ComputeSigmaValue (int scaleLevel) |
void | UpdateMaximumResponse (double sigma) |
Private Attributes | |
bool | m_GenerateHessianOutput {} |
bool | m_GenerateScalesOutput {} |
HessianFilterType::Pointer | m_HessianFilter {} |
HessianToMeasureFilterType::Pointer | m_HessianToMeasureFilter {} |
bool | m_NonNegativeHessianBasedMeasure {} |
unsigned int | m_NumberOfSigmaSteps {} |
double | m_SigmaMaximum {} |
double | m_SigmaMinimum {} |
SigmaStepMethodEnum | m_SigmaStepMethod {} |
UpdateBufferType::Pointer | m_UpdateBuffer {} |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TInputImage, TInputImage > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Static Protected Member Functions inherited from itk::ImageSource< TInputImage > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Static Protected Member Functions inherited from itk::ProcessObject | |
template<typename TSourceObject > | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
Protected Attributes inherited from itk::ImageSource< TInputImage > | |
bool | m_DynamicMultiThreading |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::BufferValueType = typename UpdateBufferType::ValueType |
Definition at line 124 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 98 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
This is overloaded to create the Scales and Hessian output images
Definition at line 213 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::HessianFilterType = HessianRecursiveGaussianImageFilter<InputImageType, HessianImageType> |
Hessian computation filter.
Definition at line 118 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::HessianImageType = THessianImage |
Definition at line 102 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::HessianToMeasureFilterType = ImageToImageFilter<HessianImageType, OutputImageType> |
Definition at line 104 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::InputImageType = TInputImage |
Definition at line 100 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::InputPixelType = typename TInputImage::PixelType |
Definition at line 106 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::OutputImageType = TOutputImage |
Definition at line 101 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::OutputPixelType = typename TOutputImage::PixelType |
Definition at line 107 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::OutputRegionType = typename TOutputImage::RegionType |
Definition at line 108 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::Pointer = SmartPointer<Self> |
Definition at line 97 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::ScalesImageType = Image<ScalesPixelType, Self::ImageDimension> |
Definition at line 115 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::ScalesPixelType = float |
Types for Scales image
Definition at line 114 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::Self = MultiScaleHessianBasedMeasureImageFilter |
Standard class type aliases.
Definition at line 94 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::SigmaStepMethodEnum = MultiScaleHessianBasedMeasureImageFilterEnums::SigmaStepMethod |
Definition at line 167 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::Superclass = ImageToImageFilter<TInputImage, TOutputImage> |
Definition at line 95 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
using itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::UpdateBufferType = Image<double, Self::ImageDimension> |
Update image buffer that holds the best objectness response. This is not redundant from the output image because the latter may not be of float type, which is required for the comparisons between responses at different scales.
Definition at line 123 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
protected |
|
overrideprotecteddefault |
|
private |
|
private |
|
overrideprotectedvirtual |
Give the process object a chance to indicate that it will produce more output than it was requested to produce. For example, many imaging filters must compute the entire output at once or can only produce output in complete slices. Such filters cannot handle smaller requested regions. These filters must provide an implementation of this method, setting the output requested region to the size they will produce. By default, a process object does not modify the size of the output requested region.
Reimplemented from itk::ProcessObject.
|
overrideprotectedvirtual |
Generate Data
Reimplemented from itk::ProcessObject.
|
virtual |
Methods to turn on/off flag to generate an image with hessian values at each pixel for the best vesselness response
|
virtual |
Methods to turn on/off flag to generate an image with scale values at each pixel for the best vesselness response
|
virtual |
Methods to turn on/off flag to generate an image with hessian values at each pixel for the best vesselness response
|
virtual |
Methods to turn on/off flag to generate an image with scale values at each pixel for the best vesselness response
const HessianImageType * itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::GetHessianOutput | ( | ) | const |
Get the image containing the Hessian computed at the best response scale
|
virtual |
Set/Get HessianToMeasureFilter. This will be a filter that takes Hessian input image and produces enhanced output scalar image. The filter must derive from itk::ImageToImage filter
|
overridevirtual |
Reimplemented from itk::ProcessObject.
|
virtual |
Methods to turn on/off flag to inform the filter that the Hessian-based measure is non-negative (classical measures like Sato's and Frangi's are), hence it has a minimum at zero. In this case, the update buffer is initialized at zero, and the output scale and Hessian are zero in case the Hessian-based measure returns zero for all scales. Otherwise, the minimum output scale and Hessian are the ones obtained at scale SigmaMinimum. On by default.
|
virtual |
Set/Get macros for Number of Scales
const ScalesImageType * itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::GetScalesOutput | ( | ) | const |
Get the image containing the scales at which each pixel gave the best response
|
virtual |
Set/Get macros for SigmaMax
|
virtual |
Set/Get macros for SigmaMin
|
virtual |
Set/Get the method used to generate scale sequence (Equispaced or Logarithmic)
|
overrideprotectedvirtual |
Make a DataObject of the correct type to used as the specified output.
Every ProcessObject subclass must be able to create a DataObject that can be used as a specified output. This method is automatically called when DataObject::DisconnectPipeline() is called. DataObject::DisconnectPipeline, disconnects a data object from being an output of its current source. When the data object is disconnected, the ProcessObject needs to construct a replacement output data object so that the ProcessObject is in a valid state. So DataObject::DisconnectPipeline eventually calls ProcessObject::MakeOutput. Note that MakeOutput always returns a itkSmartPointer to a DataObject. ImageSource and MeshSource override this method to create the correct type of image and mesh respectively. If a filter has multiple outputs of different types, then that filter must provide an implementation of MakeOutput().
Reimplemented from itk::ProcessObject.
|
static |
Method for creation through the object factory.
|
virtual |
Methods to turn on/off flag to inform the filter that the Hessian-based measure is non-negative (classical measures like Sato's and Frangi's are), hence it has a minimum at zero. In this case, the update buffer is initialized at zero, and the output scale and Hessian are zero in case the Hessian-based measure returns zero for all scales. Otherwise, the minimum output scale and Hessian are the ones obtained at scale SigmaMinimum. On by default.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::ProcessObject.
|
virtual |
Methods to turn on/off flag to generate an image with hessian values at each pixel for the best vesselness response
|
virtual |
Methods to turn on/off flag to generate an image with scale values at each pixel for the best vesselness response
|
virtual |
Set/Get HessianToMeasureFilter. This will be a filter that takes Hessian input image and produces enhanced output scalar image. The filter must derive from itk::ImageToImage filter
|
virtual |
Methods to turn on/off flag to inform the filter that the Hessian-based measure is non-negative (classical measures like Sato's and Frangi's are), hence it has a minimum at zero. In this case, the update buffer is initialized at zero, and the output scale and Hessian are zero in case the Hessian-based measure returns zero for all scales. Otherwise, the minimum output scale and Hessian are the ones obtained at scale SigmaMinimum. On by default.
|
virtual |
Set/Get macros for Number of Scales
|
virtual |
Set/Get macros for SigmaMax
|
virtual |
Set/Get macros for SigmaMin
|
virtual |
Set/Get the method used to generate scale sequence (Equispaced or Logarithmic)
void itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::SetSigmaStepMethodToEquispaced | ( | ) |
Set equispaced sigma step method
void itk::MultiScaleHessianBasedMeasureImageFilter< TInputImage, THessianImage, TOutputImage >::SetSigmaStepMethodToLogarithmic | ( | ) |
Set logarithmic sigma step method
|
private |
|
staticconstexpr |
Image dimension.
Definition at line 111 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 257 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 256 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 252 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 250 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 242 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 247 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 245 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 244 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 248 of file itkMultiScaleHessianBasedMeasureImageFilter.h.
|
private |
Definition at line 254 of file itkMultiScaleHessianBasedMeasureImageFilter.h.