HessianFilter

MLModule
genre Kernel
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll MLFilter2
definition mlFilter2.def
keywords Kernel, vessel, Frangi

Purpose

The module HessianFilter calculates the 3x3 Hessian matrix H of second derivatives of the input image.

Details

Eigenvalues EV0, EV1, EV2 of H are analyzed and used to define a ‘vesselness’ (likeliness of a voxel to be part of a line shape) by sorting EV0 < EV1 < EV2 and postulating EV0=0, EV1=EV2 < 0 for the center-line voxels of an ideal vessel structure. The degree of accordance with this condition is assessed by a criteria introduced by Frangi et al., introducing the three measures Asymmetry A, Blobness B, and Structure S as functions

fA,B,S (EV0,EV1,EV2; x) -> [0,1]

defining the vesselness

v = fA * fB * fS

with weight parameters x=alpha, beta, Structure for A, B, S, respectively.

v=1 holds for center line voxels of an ideal vessel structure.

The filter is scale-dependent as it is folding the input with the second derivatives of a Gaussian.

Windows

_defaultWindow

../../../Modules/ML/MLFilter2/mhelp/Images/Screenshots/HessianFilter._defaultWindow.png

Input Fields

input0

name: input0, type: Image

Input image for vesselness computation.

input1

name: input1, type: Image

Optional mask image. Vesselness values are only computed for voxels corresponding to a mask voxel with a value different than 0.

Output Fields

output0

name: output0, type: Image

Vesselness image.

Parameter Fields

Field Index

adjustKernelSize: Trigger exampleStartSlice: Integer Order: Enum
adjustSigma: Trigger Filter Select: Enum Sigma/mm: Float
adjustValue: Trigger Gauss Range/Sigma: Float Structure: Float
Alpha: Float getCurrentValues: Trigger Use (useVesselnessCrit): Bool
Apply: Trigger isBright: Bool Use (useAlpha): Bool
Auto Apply: Bool Isotrop: Bool Use (useBeta): Bool
Beta: Float isotropKernelSize: Integer Use (useC): Bool
Degree: Float maxValue: Double Vessel Mode: Enum
Edge Mode: Enum minMaxAdjust: Bool x: Integer
enhancementMax: Float minValue: Double y: Integer
enhancementMin: Float Mode: Enum z: Integer

Visible Fields

Edge Mode

name: edgeMode, type: Enum, default: PadSrcClamp, deprecated name: EdgeMode

Defines how image border should be handled.

See Border Handling in Kernel Operations

Values:

Title Name
NoPad NoPad
PadSrcFill PadSrcFill
PadDstFill PadDstFill
PadDstFillWithOrig PadDstFillWithOrig
PadSrcUndefined PadSrcUndefined
PadDstUndefined PadDstUndefined
PadSrcClamp PadSrcClamp

Filter Select

name: filterSelect, type: Enum, default: Eigenvalues, deprecated name: FilterSelect

Defines the applied filter.

Values:

Title Name Description
Eigenvalues Eigenvalues Writes the eigenvalues for each voxel into the t dimension of the output image.
LoG LoG Writes the trace of H, i.e. (d2/dx2)+(d2/dy2)+(d2/dz2) into the output image.
Vesselness Vesselness Writes the vesselness value into the output image.
Filter Vesselness FilterVesselness Writes an enhance / damped value with respect to the vesselness into the output image.

x

name: xExtension, type: Integer, default: 1

Sets the x extent of the kernel (the actual size is 2x-1).

y

name: yExtension, type: Integer, default: 1

Sets the y extent of the kernel (the actual size is 2y-1).

z

name: zExtension, type: Integer, default: 1

Sets the z extent of the kernel (the actual size is 2z-1).

Isotrop

name: isotropKernel, type: Bool, default: TRUE

If checked, all values in x, y, and z are set to the same value, resulting in an isotropic kernel extent.

Sigma/mm

name: sigma, type: Float, default: 1, minimum: 0.01

Sets the sigma scale value of the Gaussian filter in millimeters.

Gauss Range/Sigma

name: gaussRange, type: Float, default: 1, minimum: 0.1

Sets the range to which the kernel samples a Gaussian in units of Sigma/mm.

Apply

name: apply, type: Trigger

When pressed, the module computes the output image anew.

Auto Apply

name: autoApply, type: Bool, default: FALSE

If checked, the module computes on changes of any field anew.

Use (useVesselnessCrit)

name: useVesselnessCrit, type: Bool, default: FALSE

If checked, the vesselness filter can be calibrated with the parameters Mode, Order, and Degree. You must set Filter Select to FilterVesselness to see the effects of this setting.

Degree

name: enhancement, type: Float, default: 0.1, minimum: :field:`enhancementMin`, maximum: :field:`enhancementMax`

Sets the degree of enhancement/dampening, see Order.

Mode

name: enhanceMode, type: Enum, default: Enhance

Defines the vesselness filter mode.

Values:

Title Name Description
Enhance Enhance Enhances the input gray values if a voxel has a full vesselness value of 1000.
Damp Damp Dampens the input gray values if a voxel has a minimum vesselness value of 0.

Order

name: enhanceOrder, type: Enum, default: Exponential

Defines the order of the enhancement/dampening function.

Values:

Title Name Description
Linear Linear
Mode Function
Enhance output(v) = input(v) + Degree * (vesselness - 1000)
Damp output(v) = input(v) + vesselness * Degree
Exponential Exponential
Mode Function
Enhance output(v) = input(v) * exp(vesselness / ( Degree * 1000))
Damp output(v) = input(v) * (1 - exp( -vesselness / ( Degree * 1000 )))

Alpha

name: alpha, type: Float, default: 0.5, minimum: 0.001, maximum: 1

Sets a weighting parameter for taking into account the asymmetry of Eigenvalues (or structure).

The asymmetry measures the ratio EV1 / EV2. For plate-like structures, EV1 << EV2 holds, while for blob-like and vessel-like structures, EV1 approximately equals EV2.

  • Alpha = 0 : no consideration of asymmetry
  • Alpha = 1 : maximum consideration of asymmetry

Use (useAlpha)

name: useAlpha, type: Bool, default: TRUE

If checked, the Alpha factor is being used.

Beta

name: beta, type: Float, default: 0.5, minimum: 0.001, maximum: 1, deprecated name: betha

Sets a weighting parameter for taking into account the blobness of Eigenvalues (or structure).

The blobness measures the ratio EV0 / (EV1 * EV2). For vessel-like structures, EV0 << EV1 = EV2 holds, while for blob-like structures, EV0 = EV1 = EV2 approximately holds.

  • Beta = 1 : no consideration of blobness
  • Beta = 0 : maximum consideration of blobness

Use (useBeta)

name: useBeta, type: Bool, default: FALSE, deprecated name: useBetha

If checked, the Beta factor is being used.

Structure

name: c, type: Float, default: 0.001, minimum: 0.001, maximum: 100

Sets a weighting parameter for taking into account the overall structure at an image voxel.

Structure measures the amount of EVs in terms of

S = sqr(EV02 + EV12 + EV2 2)
  • Structure = 0 : no consideration of structure
  • Structure > 0 : consideration of structure

The value of the parameter Structure must be chosen empirically, ensuring that noisy structures compute to zero vesselness.

Use (useC)

name: useC, type: Bool, default: TRUE

If checked, the Structure factor is being used.

Vessel Mode

name: vesselMode, type: Enum, default: Bright

Defines whether the algorithm should detect dark or bright structures.

Values:

Title Name
Dark Dark
Bright Bright

Hidden Fields

isotropKernelSize

name: isotropKernelSize, type: Integer, default: 1, minimum: 1

adjustKernelSize

name: adjustKernelSize, type: Trigger

adjustSigma

name: adjustSigma, type: Trigger

minMaxAdjust

name: minMaxAdjust, type: Bool, default: FALSE

minValue

name: minValue, type: Double, default: 0

maxValue

name: maxValue, type: Double, default: 0

getCurrentValues

name: getCurrentValues, type: Trigger

adjustValue

name: adjustValue, type: Trigger

enhancementMax

name: enhancementMax, type: Float, default: 0.1

enhancementMin

name: enhancementMin, type: Float, default: 0

isBright

name: isBright, type: Bool, default: TRUE

exampleStartSlice

name: exampleStartSlice, type: Integer, default: 8