Purpose

The module WEMVascularSystem visualizes vascular trees by constructing a polygonal surface along the measured edges with certain, local or global radii.

The polygonal surface is generated as a WEM so it can be processed further with existing modules or even on C++ level very easily.

Usage

Just attach a valid VesselGraph (that is a Base structure 'Graph' which contains VesselEdges and VesselNodes) to the module's input. For the output, attach at least a SoWEMRenderer for converting the WEM structure into a displayable OpenInventor scene. Of course, other processing modules of the WEM library may be used, for example WEMSmooth WEMDemergePatches

Details

The module converts the radii of the skeletons of the graph's edges into locally smoothed functions on base of a Convolution Surfaces approach. Then, a recursive marching cubes algorithm is applied to polygonize the resulting implicit surface; the result is stored and outputted as a WEM structure for further processing.

The labels of the skeletons of the original Graph are stored in the spatially associated WEMNodes for a later coloring of the surface on base of a LUT (which needs to be attached to a SoWEMRenderer); also, these stored labels may be used for disassembling the tree structure into sections with the same label (with the WEMDemergePatches module).

The module offers options to fine-tune the result, such as a smoothing of the skeletons' positions and radii or a tapering optimization to reduce atrifacts in the association of skeleton labels to the WEMNodes.

Since the module is derived from WEMGenerator, it also offers a variety of parameters to use with other WEM modules, such as global coloring options.

Windows

Default Panel

../../../Modules/ML/MLWEMModules/mhelp/Images/Screenshots/WEMVascularSystem._default.png

Input Fields

The module has one input which needs to be of Base type 'Graph'.

inputGraph

name: inputGraph, type: MLBase

The input needs to be of type VesselGraph.

Output Fields

The module has one output of type WEM.

outWEM

name: outWEM, type: MLBase

An idealized surface of the vascular system described by the input graph.

Parameter Fields

Field Index

autoClear: Bool Num Smoothing Passes: Integer Use Taper Optimization: Bool
Edge: Float Polygonal Refinement: Enum useFaceDiffuseColor: Bool
editable: Bool Radius: Float usePolygonOffset: Bool
elapsedTime: Float removePreviousWEMs: Bool  
Fixed: Float Scale: Float  
id: Integer show: Bool  
isProcessing: Bool Smoothing Factor: Float  
Mode: Enum Smoothness at Branchings: Enum  

Visible Fields

Num Smoothing Passes

name: numSmoothingPasses, type: Integer, default: 5

Sets the number of smoothing passes for smoothing the skeleton's positions and radii.

A Laplacian smoothing is applied.

Smoothing Factor

name: smoothingFactor, type: Float, default: 0.75, minimum: 0, maximum: 0.9

Sets the smoothing factor for smoothing the skeletons' positions and radii.

Mode

name: radiusMode, type: Enum, default: Min

Defines the radius mode that is used for generating the surface.

In the Graph's skeletons, there are the minimum and the maximum radius available.

Note that those names are quite arbitrary and allude to certain measuring algorithms rather than to some measured minimum and maximum value.

Values:

Title Name Description
Min Min The so-called minimum radius.
Max Max The so-called maximum radius.
Average Average Average of the minimum and the maximum values.
Fixed Fixed All radii have a fixed size, adjust with Fixed.

Scale

name: radiusScale, type: Float, default: 0.85000002, minimum: 0.1, maximum: 2

Sets an overall scaling value of the Min, Max or Average radius.

Fixed

name: radiusFixedSize, type: Float, default: 2, minimum: 0

Sets a value for the fixed radius in millimeter (if the option Mode is set to Fixed).

Smoothness at Branchings

name: blendingStrength, type: Enum, default: Medium

Defines the blending of the implicit functions at furcations.

Values:

Title Name
Low Low
Medium Medium
High High

Polygonal Refinement

name: polygonalDensity, type: Enum, default: Low

Defines the size of the cube / grid that is used in the marching cubes algorithm.

Values:

Title Name Description
Low Low Causes the (marching) cubes to have voxel size of the original image.
Medium Medium Scales the cubes with 0.75.
High High Scales them with 0.5.

Use Taper Optimization

name: useTaperOptimization, type: Bool, default: TRUE

If checked, certain artifacts at furcations are reduced that are caused by a erroneous association of skeleton labels to WEMNode values.

Edge

name: taperEdgePercentage, type: Float, default: 0.1, minimum: 0, maximum: 1

Sets the amount of edge skeletons that are tapered.

A value of 1 would taper the whole edge, a value of 0.1 would taper only the last 10%. Note that only the part towards the root node(s) are tapered, but the edges attached to the root node(s) themselves are left unchanged.

Radius

name: taperTargetRadius, type: Float, default: 0.60000002, minimum: 0, maximum: 1

Sets the target percentage of the tapered end of an edge.

A value of 0.6 results in a 60% reduced radius at the last skeleton of an edge towards the root node(s).

Hidden Fields

isProcessing

name: isProcessing, type: Bool, default: FALSE

elapsedTime

name: elapsedTime, type: Float, default: 0

id

name: id, type: Integer, default: 0

autoClear

name: autoClear, type: Bool, default: FALSE

removePreviousWEMs

name: removePreviousWEMs, type: Bool, default: TRUE

show

name: show, type: Bool, default: TRUE

editable

name: editable, type: Bool, default: TRUE

useFaceDiffuseColor

name: useFaceDiffuseColor, type: Bool, default: TRUE

usePolygonOffset

name: usePolygonOffset, type: Bool, default: FALSE