| genre | WEMGenerate |
| status | stable |
| authors | Olaf Konrad, Steffen Oeltze |
| package | MeVisLab/Standard |
| dll | MLWEMModules |
| definition | MLWEMModules.def |
| see also | SoVascularSystem |
| keywords | vessel, visualization, treedata, skeleton, implicit, convolution, surfaces |
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.
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
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.
The module has one input which needs to be of Base type 'Graph'.
The module has one output of type WEM.
| 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 |
Sets the number of smoothing passes for smoothing the skeleton's positions and radii.
A Laplacian smoothing is applied.
Sets the smoothing factor for smoothing the skeletons' positions and radii.
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. |
Sets an overall scaling value of the Min, Max or Average radius.
Defines the blending of the implicit functions at furcations.
Values:
| Title | Name |
|---|---|
| Low | Low |
| Medium | Medium |
| High | High |
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. |
If checked, certain artifacts at furcations are reduced that are caused by a erroneous association of skeleton labels to WEMNode values.
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.