Surfaces

Chapter V: Data Objects

Data Objects in MeVisLab

MeVisLab provides pre-defined data objects, e. g.

  • Contour Segmented Objects (CSOs)
    which are three-dimensional objects encapsulating formerly defined contours within images.
  • Surface Objects (Winged Edge Meshes or WEMs)
    represent the surface of geometrical figures and allow the user to manipulate them.
  • Markers
    are used to mark specific locations or aspects of an image and allow to process those later on.
  • Curves
    can print the results of a function as two-dimensional mathematical graphs into a diagram.

Usage, advantages and disadvantages of each above mentioned data object type will be covered in the following specified chapters, where you will be building example networks for some of the most common use cases.

Surface Objects (WEM)

Surface Objects (WEMs)

Introduction

In MeVisLab it is possible to create, visualize, process and manipulate surface objects, also known as polygon meshes. Here, we call surface objects Winged Edge Mesh, in short WEM. In this chapter you will get an introduction into WEMs. In addition, you will find examples on how to work with WEMs. For more information on WEMs take a look at the MeVislab Toolbox Reference . If you like to know which WEM formats can be imported into MeVisLab, take a look at the assimp documentation here.

Surface Example 1: Creation of WEMs

Surface Example 1: Create Winged Edge Mesh out of voxel images and CSOs

Introduction

In this example you will learn how to create a Winged Edge Mesh (WEM). There are several approaches on creating WEMs, a few of them are shown in this example. Instead of creating WEMs, they can also be imported, see chapter Surface Objects (WEM).

Steps to do

From image to surface: Generating WEMs out of voxel images

At first, we will create a WEM out of a voxel image using the module WEMIsoSurface. Add and connect the shown modules. Load the image $(DemoDataPath)/Bone.tiff and set the Iso Min. Value in the panel of WEMIsoSurface to 1200. Tick the box Use image max. value. The module WEMIsoSurface creates surface objects out of all voxels with an Iso value equal or above 1200 (and smaller than the image max value). The module SoWEMRenderer can now be used to generate an Open Inventor scene, which can be displayed by the module SoExaminerViewer.

Surface Example 2: Processing and Modification of WEM

Surface Example 2: Processing and Modification of WEM

Introduction

In this example, you will learn how to modify and process WEMs.

Steps to do

Develop your network

Modification of WEMs

Use the module WEMLoad to load the file venus.off. Then add and connect the shown modules. We like to display the WEM venus two times, one time this WEM is modified. You can use the module WEMModify to apply modifications. In its panel, change the scale and the size of the WEM. Now you see two times the venus next to each other.

Surface Example 3: Interactions with WEM

Surface Example 3: Interactions with WEM

Introduction

In these examples, we are showing 2 different possibilities to interact with a WEM:

  • Scale, rotate and move a WEM in a scene
  • Modify a WEM in a scene

Scale, rotate and move a WEM in a scene

We are using a SoTransformerDragger module to apply transformations on a 3D WEM object via mouse interactions.

Surface Example 4: Interactively moving WEM

Surface Example 4: Interactively moving WEM

Introduction

In this example, we like to interactively move WEMs using SoDragger modules insight a viewer.

Develop your network

Interactively translating objects in 3D using SoDragger modules

Add and connect the following modules as shown. In the panel of the module WEMInitialize select the Model Octasphere. After that, open the viewer SoExaminerViewer and make sure to select the Interaction Mode. Now, you are able to click on the presented Octaspehere and move it alongside one axis. The following modules are involved in the interactions:

Surface Example 5: WEM - Primitive Value Lists

Surface Example 5: WEM - Primitive Value Lists

Introduction

WEMs do not only contain the coordinates of nodes and surfaces, they can also contain additional information. These information are stored in so called Primitive Value Lists (PVLs). Every node, every surface and every edge can contains such a list. In these lists, you can for example store the color of the node or specific patient information. These information can be used for visualization or for further statistical analysis.