WEMVascularSystem¶
-
MLModule
¶ genre WEMGenerate
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll MLWEMModules
definition MLWEMModules.def see also SoVascularSystem
inherits from WEMGenerator
keywords vessel
,visualization
,treedata
,skeleton
,implicit
,convolution
,surfaces
Purpose¶
The module WEMVascularSystem
visualizes vascular trees by constructing a polygonal surface along the measured edges using specified local or global radii.
Usage¶
Simply attach a valid Graph
(a Base structure that contains VesselEdge
and VesselNode
) to the module’s input.
For the output, attach at least one SoWEMRenderer
to convert the WEM structure into a displayable Open Inventor scene. Other processing modules from the WEM library, such as WEMSmooth
or WEMDemergePatches
, may also be used.
Details¶
The module converts the radii of the skeletons of the graph’s edges into locally smoothed functions based on a Convolution Surfaces approach. Then, a recursive marching cubes algorithm is applied to polygonize the resulting implicit surface; the result is stored and output as a WEM structure for further processing.
The labels of the skeletons of the original graph are stored in the spatially associated WEMNodes for later coloring of the surface based on a LUT (which needs to be attached to a SoWEMRenderer
). Additionally, these stored labels may be used to disassemble the tree structure into sections with the same label using the WEMDemergePatches
module.
The module offers options to fine-tune the result, such as smoothing the positions and radii of the skeletons or optimizing tapering to reduce artifacts in the association of skeleton labels with the WEMNodes.
Since the module is derived from WEMGenerator.h
, it also offers a variety of parameters to use with other WEM modules, including global coloring options.
Input Fields¶
The module has one input which needs to be of Base type ‘Graph’.
inputGraph¶
-
name:
inputGraph
, type:
Graph(MLBase)
¶ The input needs to be of type VesselGraph.
For accessing this object via scripting see the Scripting Reference:MLGraphWrapper
.
Output Fields¶
The module has one output of type WEM.
outWEM¶
-
name:
outWEM
, type:
WEM(MLBase)
¶ An idealized surface of the vascular system described by the input graph.
For accessing this object via scripting see the Scripting Reference:MLWEMWrapper
.
Parameter Fields¶
Field Index¶
Apply : Trigger |
id : Integer |
Scale : Float |
Auto Apply : Bool |
isProcessing : Bool |
shouldComputeNormals : Bool |
Clear : Trigger |
Label : String |
Smoothing Factor : Float |
Clip image extent : Bool |
Mode : Enum |
Smoothness at Branchings : Enum |
Description : String |
Num Smoothing Passes : Integer |
Update Mode : Enum |
Edge : Float |
Overwrite label and description : Bool |
Use Taper Optimization : Bool |
elapsedTime : Float |
Polygonal Refinement : Enum |
Voxel Size : Double |
Fixed : Float |
Radius : Float |
Weight Max : Double |
Generate Locked Faces At Leaf Nodes : Bool |
Radius Max : Double |
Weight Min : Double |
Generate Smooth Furcation Joins : Bool |
Radius Min : Double |
Visible Fields¶
Auto Apply¶
-
name:
autoApply
, type:
Bool
, default:
TRUE
¶ If checked, all parameter field changes lead to a re-computation.
see also WEMGenerator.autoApply
Update Mode¶
-
name:
updateMode
, type:
Enum
, default:
AutoUpdate
, deprecated name:
autoUpdate
¶ Defines how this module should react on any input field change.
see also WEMGenerator.updateMode
Apply¶
-
name:
apply
, type:
Trigger
¶ When pressed, the output WEM is computed anew.
see also WEMGenerator.apply
Clear¶
-
name:
clear
, type:
Trigger
¶ When pressed, the output WEM is cleared (made empty).
see also WEMGenerator.clear
Overwrite label and description¶
-
name:
overwriteLabelDescription
, type:
Bool
, default:
FALSE
¶ If checked, label and description strings are set in the output WEM to
Label
andDescription
.
Label¶
-
name:
label
, type:
String
¶ Sets a label string to the output WEM.
see also WEMGenerator.label
Description¶
-
name:
description
, type:
String
¶ Sets a description string to the output WEM.
see also WEMGenerator.description
Num Smoothing Passes¶
-
name:
numSmoothingPasses
, type:
Integer
, default:
5
¶ Sets the number of smoothing passes of the input graph before the surface is generated.
Smoothing Factor¶
-
name:
smoothingFactor
, type:
Float
, default:
0.75
, minimum:
0
, maximum:
0.9
¶ Sets a smoothing factor for the smoothing of the input graph before the surface is generated.
Mode¶
-
name:
radiusMode
, type:
Enum
, default:
Min
¶ Defines the radius mode.
Values:
Title | Name | Description |
---|---|---|
Min | Min | Uses the stored ‘min’ radius. This does not necessarily represent the minimum radius; it is simply a name. |
Max | Max | Uses the stored ‘max’ radius. This does not necessarily represent the maximum radius; it is simply a name. |
Average | Average | Uses the average of ‘min’ and ‘max’ radii. |
Fixed | Fixed | Uses a fixed radius with size Fixed . |
Scale¶
-
name:
radiusScale
, type:
Float
, default:
0.85000002
, minimum:
0.1
, maximum:
2
¶ Sets a global scaling factor to the radius.
Voxel Size¶
-
name:
voxelSize
, type:
Double
, default:
1
¶ Sets the size of the voxel used for interpolation of the graph when no reference image is used for clipping.
This only works if
Clip image extent
is disabled. For example, a value of 2 means the grid for interpolating the graph has a cell size of 2 mm.
Clip image extent¶
-
name:
clipping
, type:
Bool
, default:
TRUE
¶ If checked, any part of the graph that exceeds the image extent is clipped to fit within it.
Smoothness at Branchings¶
-
name:
blendingStrength
, type:
Enum
, default:
Medium
¶ Defines the smoothing function used for generating the surface; this function has the greatest effect on branchings.
Values:
Title | Name | Description |
---|---|---|
Low | Low | Sets a low smoothness at branchings. |
Medium | Medium | Sets a medium smoothness at branchings. |
High | High | Sets a high smoothness at branchings. |
Polygonal Refinement¶
-
name:
polygonalDensity
, type:
Enum
, default:
Low
¶ Sets the polygonal refinement, which represents the scan resolution of the internal marching cubes algorithm.
Values:
Title | Name | Description |
---|---|---|
Low | Low | Sets a low resolution: fast but coarse. |
Medium | Medium | Sets a medium resolution. |
High | High | Sets a high resolution: slow but smooth. |
Use Taper Optimization¶
-
name:
useTaperOptimization
, type:
Bool
, default:
TRUE
¶ If checked, the graph edges leading to their branching nodes are tapered. This reduces coloring artifacts at the branchings.
Edge¶
-
name:
taperEdgePercentage
, type:
Float
, default:
0.1
, minimum:
0
, maximum:
1
¶ Sets the percentage of the edge that is tapered.
For example, a value of 0.1 means that the last 10% of the edge leading to the branching is tapered.
Radius¶
Generate Smooth Furcation Joins¶
-
name:
generateSmoothFurcationJoins
, type:
Bool
, default:
TRUE
¶ If checked, the module will produce smooth seams where vessel edges branch off, with these edges displaying a different color than the stem.
Generate Locked Faces At Leaf Nodes¶
-
name:
generateLockedFacesAtLeafNodes
, type:
Bool
, default:
FALSE
¶ If checked, the module locks all faces generated for the leaf nodes of a vascular system.
Locked faces are not reduced by
WEMReducePolygons
, they are not smoothed byWEMSmooth
, and their normals are not recomputed.
Radius Min¶
-
name:
distanceImageRadiusMin
, type:
Double
, default:
5
, minimum:
0
¶ Sets the minimum vessel radius at which the distance image is used with a strength of
Weight Min
.
Radius Max¶
-
name:
distanceImageRadiusMax
, type:
Double
, default:
20
, minimum:
0
¶ Sets the minimum vessel radius at which the distance image is used with a strength of
Weight Max
.
Weight Min¶
-
name:
distanceImageWeightMin
, type:
Double
, default:
0
, minimum:
0
, maximum:
:field:`distanceImageWeightMax`
¶ Sets the minimum weight of the distance image; this is used for radii below the
Radius Min
.
Weight Max¶
-
name:
distanceImageWeightMax
, type:
Double
, default:
1
, minimum:
:field:`distanceImageWeightMin`
, maximum:
1
¶ Sets the maximum weight of the distance image; this is used for radii above the
Radius Max
.