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