WEMBinarySurface

MLModule
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll MLOpenVDB
definition MLOpenVDB.def
inherits from WEMGenerator
keywords iso, contour, dual

Purpose

The WEMBinarySurface allows for creating a surface from a binary segmentation mask. When used in LevelSet” mode, every voxel value not equal to 0 is treated as foreground, while every value equal to 0 is treated as background. This topology mask is used to create a level set that is closed, dilated, or filtered. Finally, a mesh is created using dual contouring on the level set.

It utilizes the OpenVDB library.

NOTE: The topologyToLevelSet method used in level set generation appears to create non-closed level sets, which can lead to undesired holes in the surface.

The module also supports a classical IsoValue mode; however, this mode will be inefficient if there are many voxel values that are not background (equal to 0).

For a more general isosurface generation module, see WEMIsoSurface.

Windows

Default Panel

../../../Projects/MLOpenVDB/MLOpenVDB/Modules/mhelp/Images/Screenshots/WEMBinarySurface._default.png

Parameter Fields

Field Index

Adaptivity: Double elapsedTime: Float shouldComputeNormals: Bool
Apply: Trigger id: Integer Smoothing Iterations: Integer
Auto Apply: Bool Iso Value: Float Update Mode: Enum
Build Edges: Bool isProcessing: Bool  
Clear: Trigger Label: String  
Closing Iterations: Integer Mode: Enum  
Description: String Overwrite label and description: Bool  
Dilate Iterations: Integer progress: Float  

Visible Fields

Auto Apply

name: autoApply, type: Bool, default: TRUE

see WEMGenerator.autoApply

Update Mode

name: updateMode, type: Enum, default: AutoUpdate, deprecated name: autoUpdate

see WEMGenerator.updateMode

Apply

name: apply, type: Trigger

see WEMGenerator.apply

Clear

name: clear, type: Trigger

see WEMGenerator.clear

Overwrite label and description

name: overwriteLabelDescription, type: Bool, default: FALSE

see WEMGenerator.overwriteLabelDescription

Label

name: label, type: String

see WEMGenerator.label

Description

name: description, type: String

see WEMGenerator.description

Mode

name: mode, type: Enum, default: LevelSet

Defines the surface generation mode.

Values:

Title Name Description
Iso Value IsoValue Dual contouring is performed on the interpolated voxel grid using the provided Iso Value. Consider using WEMIsoSurface as an alternative to this mode.
Level Set LevelSet

Every voxel value not equal to 0 is treated as foreground, while every voxel value equal to 0 is treated as background. This topology mask is used to create a level set that is closed, dilated, or filtered. Finally, a mesh is created using dual contouring on the level set.

To select an object in a more complex input image, use a module like IntervalThreshold to map the desired object to 1 and the background to 0.

Adaptivity

name: adaptivity, type: Double, default: 1

Sets the adaptivity of the resulting mesh.

An adaptivity value of 0 means that all triangles are created at the highest resolution, while an adaptivity value of 1 reduces the mesh to the maximum supported by OpenVDB.

Build Edges

name: buildEdges, type: Bool, default: TRUE

If checked, the generation of edge connectivity is enabled.

Closing Iterations

name: closingIterations, type: Integer, default: 1

Sets the number of closing iterations. At least one iteration should be used.

Dilate Iterations

name: dilateIterations, type: Integer, default: 0

Sets the number of dilation iterations.

Smoothing Iterations

name: smoothingIterations, type: Integer, default: 1

Sets the number of smoothing iterations.

Iso Value

name: isoValue, type: Float, default: 0.5

Sets the iso-value for the IsoValue mode.

Hidden Fields

isProcessing

name: isProcessing, type: Bool, persistent: no

see WEMGenerator.isProcessing

elapsedTime

name: elapsedTime, type: Float, persistent: no

see WEMGenerator.elapsedTime

id

name: id, type: Integer, default: 0

see WEMGenerator.id

shouldComputeNormals

name: shouldComputeNormals, type: Bool, default: TRUE

see WEMGenerator.shouldComputeNormals

progress

name: progress, type: Float, persistent: no