FuzzyConnectDistance

MLModule
genre Fuzzy
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll MLFuzzy
definition MLFuzzy.def
see also FuzzyCluster
keywords connectedness, segmentation, HCC, tumor, vessels, bones

Purpose

The module FuzzyConnectDistance provides a segmentation algorithm based on fuzzy connectedness.

The algorithm can be extended by a property based on the distance of image elements to the center of the object being segmented while calculating membership values. This version is designed for spherical objects and objects that do not differ significantly from the background.

Starting from a seed point placed in the object of interest (OOI) or from a vector representing the object’s diameter, the algorithm calculates the membership values of the voxels in the OOI. The mean gray values must be provided for the computation. Several parameters are available to shorten the calculation. After segmentation, the result can be refined by adjusting the threshold for the memberships to achieve an optimal outcome.

The distance-based method is merely a feature and does not have to be used. Disabling this option reverts to the original fuzzy connectedness algorithm.

Usage

Preprocessing

You must first provide the following values: the Mean Object Value and its Stdev Object Value, as well as the Mean Gradient and its Stdev Gradient.

This can be done manually or by drawing a contour to allow the object values to be calculated automatically, and placing markers at the border of the OOI to compute the gradient relative to objects outside of it. Alternatively, a vector can be drawn in the OOI with index 0, after which the mean gray value will be calculated based on the points within the circle defined by the diameter. Additionally, the radius is stored to facilitate the calculation of distance-based membership values.

Calculation

At least one seed point has to be placed in the OOI before starting the calculation by pressing the Calculate button. To stop the calculation manually, press the Stop button.

Postprocessing

To manipulate the result, move the slider Selection

Windows

Default Panel

../../../Modules/ML/MLFuzzy/mhelp/Images/Screenshots/FuzzyConnectDistance._default.png

Input Fields

input0

name: input0, type: Image

The scalar input image.

inputMarker

name: inputMarker, type: XMarkerList(MLBase)

A marker list. Only for the calculation of mean gray values.

For accessing this object via scripting see the Scripting Reference: MLXMarkerListWrapper.

contour

name: contour, type: SEGContourList(MLBase)

A contour. Only for the calculation of mean gray values.

inputMarkersVol

name: inputMarkersVol, type: XMarkerList(MLBase)

A marker list, supplying drawn vectors.

For accessing this object via scripting see the Scripting Reference: MLXMarkerListWrapper.

Output Fields

output0

name: output0, type: Image

The output result as a float image.

The background is set to 0 and the values in the segmented region are between 0 and 1 depending on their membership values in the OOI.

Parameter Fields

Field Index

acceptedMarkerType: Integer Mean Background: Double Slice: Integer
Calc Mean Gray Value: Trigger Mean Gradient: Double Status: String
calcCounter: Double Mean Object Value: Double Stdev Gradient: Double
Calculate: Trigger Neighborhood: Enum Stdev Object Value: Double
calcVolume: Trigger noSeeds: Integer Stop: Trigger
Distance Weigth: Double Overflow Limit (Voxel): Integer Use (buckets): Bool
ImageMax: Double Per slice: Bool Use (distanceOn): Bool
ImageMin: Double Radius Weight: Double Value: Double
Lower Limit: Double Reset: Trigger volume: Double
maxSize: Integer Selection: Double Weight Object: Double

Visible Fields

Calculate

name: calculate, type: Trigger

When pressed, a new calculation is started.

After having stopped a calculation by pressing Stop, it can be resumed by pressing Calculate again.

Slice

name: currentSlice, type: Integer, default: 0, minimum: 0, maximum: :field:`maxSize`

Sets the slice on which the calculation is to be performed.

Has only an effect if Per slice is checked; otherwise, the calculation is performed on each slice.

Per slice

name: perSlice, type: Bool, default: FALSE

If checked, the slice to calculate on can be selected with Slice.

Selection

name: threshold, type: Double, default: 0.5, minimum: 0, maximum: 1

Sets the threshold for membership.

Can be used after the calculation is finished to manipulate the result.

Weight Object

name: weight, type: Double, default: 1, minimum: 0, maximum: 1

Sets the weight of the object value in the calculation.

The weight of the gradient is 1 - Weight Object.

Lower Limit

name: calcThresh, type: Double, default: 0, minimum: 0, maximum: 1

Sets the membership value for which the calculation is to be pursued.

This should be greater than zero to avoid long calculation time.

Mean Object Value

name: meanValue, type: Double, default: 0, minimum: :field:`ImageMin`, maximum: :field:`ImageMax`

Sets the mean object value.

Stdev Object Value

name: stdDevValue, type: Double, default: 0, minimum: :field:`ImageMin`, maximum: :field:`ImageMax`

Sets the standard deviation of the mean object value.

Mean Gradient

name: meanGradient, type: Double, default: 0, minimum: :field:`ImageMin`, maximum: :field:`ImageMax`

Sets the mean gradient to objects outside the OOI.

This parameter helps finding edges of the OOI.

Stdev Gradient

name: stdDevGradient, type: Double, default: 0, minimum: :field:`ImageMin`, maximum: :field:`ImageMax`

Sets the standard deviation of the gradient.

Calc Mean Gray Value

name: seeds, type: Trigger

When pressed, the object and gradient values, along with their standard deviations, are calculated automatically.

Use this after tracing a contour and placing markers at the border of the OOI.

Stop

name: stop, type: Trigger

When pressed, the calculation is halted.

The calculation can be resumed by pressing Calculate.

Reset

name: reset, type: Trigger

When pressed, the segmentation result is removed.

If pressed again, the calculation is being started from the beginning.

Value

name: connect, type: Double, default: 1

Shows the membership value for which the calculation has been completed.

Mean Background

name: meanBack, type: Double, minimum: :field:`ImageMin`, maximum: :field:`ImageMax`, persistent: no

Sets the mean background value.

Status

name: status, type: String, persistent: no

Shows the status of the module.

Overflow Limit (Voxel)

name: numberOfBucketElements, type: Integer, default: 100, minimum: 20

Sets the maximum number of the internally used buckets.

If that maximum number is reached, the calculation is stopped.

Use (buckets)

name: buckets, type: Bool, default: FALSE

If checked, the field Overflow Limit (Voxel) can be used.

Use (distanceOn)

name: distanceOn, type: Bool, default: FALSE

If checked, the distance to the center of the object is included into the calculation of membership values.

Distance Weigth

name: weightDistance, type: Double, default: 0.3, minimum: 0, maximum: 1

Sets the weighting between gray values and distance of a voxel from the center of the OOI.

Radius Weight

name: weightRadius, type: Double, default: 0.2, minimum: 0, maximum: 1

Sets a percentage to be subtracted from the radius derived from the drawn diameter.

Neighborhood

name: neighbourhood, type: Enum, default: 4/6 Neighbours

Defines the considered neighborhood for the algorithm.

Values:

Title Name Description
4/6 Neighbours 4/6 Neighbours 2D neighborhood.
8/26 Neighbours 8/26 Neighbours 3D neighborhood.

Hidden Fields

calcCounter

name: calcCounter, type: Double, persistent: no

maxSize

name: maxSize, type: Integer, default: 0

volume

name: volume, type: Double, default: 0

calcVolume

name: calcVolume, type: Trigger

acceptedMarkerType

name: acceptedMarkerType, type: Integer, default: -1

noSeeds

name: noSeeds, type: Integer, default: 0

ImageMin

name: ImageMin, type: Double, default: 0

ImageMax

name: ImageMax, type: Double, default: 4095