CSOShapeBasedInterpolation

MLModule

genre

CSOModule

authors

Johann Drexl, Christian Kanthak

package

FMEstable/ReleaseMeVis

dll

MLShapeBasedInterpolationSlices

definition

MLShapeBasedInterpolationSlices.def

see also

CSOVoxelizeContours

keywords

CSO, shape, based, interpolation, segmentation

Purpose

The CSOShapeBasedInterpolation converts a CSOList to an ML image using the well-known “Shape Based Interpolation” method. This method estimates the shape of an object from sparsely spaced slices of it. Thus an organ or other object of interest can be reconstructed from a series of arbitrary spaced slices.

Implemented according to: G. Herman et al: Shape-based Interpolation, IEEE Computer Graphics&Applications, vol. 12 no. 3 p.69-79. Specifically, it’s their “method 5” (with linear between-slice interpolation).

Usage

  1. Connect a CSOList and the corresponding image the CSOs were drawn on.

  2. Touch the “update” Trigger field.

Details

The algorithm proceeds in the following way:

  1. Render all CSOs into an internal mask representation using methods from the CSO library.

  2. Transform the resulting slices which contain a shape from CSO into a distance image using algorithm from: G. Herman et al: “Shape-based Interpolation”.

  3. Linear interpolate the distance values onto intermediate slices.

  4. Calculate the final output mask image based on the distance image.

Tips

To speed up the calculation you should use a sub image of the input image constructed from the bounding box of the input CSOs.

Windows

Default Panel

../../../Projects/SBI/MLShapeBasedInterpolationSlices/Modules/mhelp/Images/Screenshots/CSOShapeBasedInterpolation._default.png

Input Fields

The module expects a CSO List and an image as input. The CSO List contains the sparsely spaced slices, each represented as a CSO.

input0

name: input0, type: Image

The input image used to draw the CSOs.

inCSOList

name: inCSOList, type: CSOList(MLBase)

The input CSOs presenting the shape. Note: the standard CSO notification mechanism is not supported.

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

Output Fields

output0

name: output0, type: Image

Contains the interpolation result as a volume mask (0, 255). Type is unsigned int8.

output1

name: output1, type: Image

Contains the interpolated distance map. Type is unsigned int16.

Parameter Fields

Field Index

[]: Trigger

Use distance to contour: Bool

Clear: Trigger

doNotClearOnFailedUpdate: Bool

Has Valid Output: Bool

On Input Change Behavior: Enum

Status Code: Enum

Status Message: String

Update: Trigger

Visible Fields

Update

name: update, type: Trigger, deprecated name: apply

Initiates update of all output field values.

Clear

name: clear, type: Trigger

Clears all output field values to a clean initial state.

On Input Change Behavior

name: onInputChangeBehavior, type: Enum, default: Clear, deprecated name: autoApply,shouldAutoUpdate,shouldUpdateAutomatically

Declares how the module should react if a value of an input field changes.

Values:

Title

Name

Deprecated Name

​Update

​Update

​TRUE

​Clear

​Clear

​FALSE

Status Code

name: statusCode, type: Enum, persistent: no

Reflects module’s status (successful or failed computations) as one of some predefined enumeration values.

Values:

Title

Name

​Ok

​Ok

​Invalid input object

​Invalid input object

​Invalid input parameter

​Invalid input parameter

​Internal error

​Internal error

Status Message

name: statusMessage, type: String, persistent: no

Gives additional, detailed information about status code as human-readable message.

Has Valid Output

name: hasValidOutput, type: Bool, persistent: no

Indicates validity of output field values (success of computation).

[]

name: updateDone, type: Trigger, persistent: no

Notifies that an update was performed (Check status interface fields to identify success or failure).

Use distance to contour

name: inUseDistanceToContour, type: Bool, default: FALSE

If True, the distance transform computes distances to the CSOs rather than to the mask created from it, allowing for subvoxel accuracy in the distance map.

Hidden Fields

doNotClearOnFailedUpdate

name: doNotClearOnFailedUpdate, type: Bool, persistent: no

Prevents automated clear after update failed. This does not affect status fields. It enables the developer to analyze module’s state after failure.