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 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 Open Inventor 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.
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
¶ If pressed, the output WEM is computed anew.
see also WEMGenerator.apply
Clear¶
-
name:
clear
, type:
Trigger
¶ If 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 being 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 being generated.
Mode¶
-
name:
radiusMode
, type:
Enum
, default:
Min
¶ Defines the radius mode.
Values:
Title | Name | Description |
---|---|---|
Min | Min | Uses the stored ‘min’ radius. This is not necessarily the minimum radius, this is just a name. |
Max | Max | Uses the stored ‘max’ radius. This is not necessarily the minimum radius, this is just 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
¶ Set 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 if no reference image is used for clipping. This works only if
Clip image extent
is disabled. E.g, a value of 2 means the grid to interpolate the graph has a cell size of 2mm.
Clip image extent¶
-
name:
clipping
, type:
Bool
, default:
TRUE
¶ If checked, the graph is clipped inside the image extent.
Smoothness at Branchings¶
-
name:
blendingStrength
, type:
Enum
, default:
Medium
¶ Defines the smoothing function that is used for generating the surface, this function affects branchings the most.
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 is 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 toward their branching nodes are being tapered. This reduces coloring artifacts at branchings.
Edge¶
-
name:
taperEdgePercentage
, type:
Float
, default:
0.1
, minimum:
0
, maximum:
1
¶ Sets the percentage of the edge that is being tapered. E.g., a value of 0.1 means that the last 10% of the edge towards the branching is being tapered.
Radius¶
Generate Smooth Furcation Joins¶
-
name:
generateSmoothFurcationJoins
, type:
Bool
, default:
TRUE
¶ If checked, the module will produce smooth rims where vessel edges branch off with a different color.
Generate Locked Faces At Leaf Nodes¶
-
name:
generateLockedFacesAtLeafNodes
, type:
Bool
, default:
FALSE
¶ If checked, the module locks all faces at the leaf nodes of a vascular system.
Locked faces are not reduced by
WEMReducePolygons
, they are not smoothed byWEMSmooth
, and their normals are not re-computed.
Radius Min¶
-
name:
distanceImageRadiusMin
, type:
Double
, default:
5
, minimum:
0
¶ Selects the minimum vessel radius at which the distance image is used with
Weight Min
strength.
Radius Max¶
-
name:
distanceImageRadiusMax
, type:
Double
, default:
20
, minimum:
0
¶ Selects the maximum vessel radius at which the distance image is used with
Weight Max
strength.
Weight Min¶
-
name:
distanceImageWeightMin
, type:
Double
, default:
0
, minimum:
0
, maximum:
:field:`distanceImageWeightMax`
¶ Selects the minimum weight of the distance image, this is used below the
Radius Min
radius.
Weight Max¶
-
name:
distanceImageWeightMax
, type:
Double
, default:
1
, minimum:
:field:`distanceImageWeightMin`
, maximum:
1
¶ Selects the maximum weight of the distance image, this is used above the
Radius Max
radius.