Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion mevislab.github.io/content/about/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ status: "OK"
tags: ["Symbols", "Glossary", "Overview"]
---
## Symbols
We embedded three symbols, referencing additional info, tasks and warnings:
We embedded three symbols, referencing additional info, tasks, and warnings:
{{<alert class="info" caption="Info">}}
Provides additional links or info on the current topic.
{{</alert>}}
Expand Down
4 changes: 2 additions & 2 deletions mevislab.github.io/content/contact.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ title: "Contact"
date: 2022-06-15T08:54:53+02:00
draft: false
---
### Feedback is valuable and always appreciated!
### Feedback is Valuable and Always Appreciated!

#### MeVisLab Licensing
Having any questions on MeVisLab Licensing? Please contact the [MeVisLab Sales Team](mailto://sales@mevislab.de)

#### MeVisLab forum
#### MeVisLab Forum
Searching for a forum to ask your specific MeVisLab questions? Having trouble with functionalities? Ask [here](https://forum.mevislab.de)! Someone else might know the answer. If not - one of our developers will help you out!

#### General Questions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This example shows how to create a contour filter.

# Summary
Images are loaded via `ImageLoad` module and visualized unchanged in a `View2D` module *View2D1*.
Additionally the images are modified by a local macro module `Filter` and shown in another `View2D` viewer *View2D*.
Additionally, the images are modified by a local macro module `Filter` and shown in another `View2D` viewer *View2D*.

In order to display the same slice (unchanged and changed), the module `SyncFloat` is used to synchronize the field value *startSlice* in both viewers. The `SyncFloat` module duplicates the value *Float1* to the field *Float2*.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ title: "Panel for the contour filter"
category: "basic_mechanisms"
---

# Example 1: Panel for the contour filter
# Example 1: Panel for the Contour Filter
This example contains a whole package structure. Inside you can find the example contour filter for which a panel was created.

## Summary
A new macro module `Filter` has been created. Initially macro modules do not provide an own panel containing user interface elements such as buttons. The *Automatic Panel* is shown on double-clicking the module providing the name of the module.
A new macro module `Filter` has been created. Initially, macro modules do not provide an own panel containing user interface elements such as buttons. The *Automatic Panel* is shown on double-clicking the module providing the name of the module.

In this example we update the *\*.script* file of the `Filter` module to display the kernel selection field of the `Convolution` module within its network.
In this example we update the *.script* file of the `Filter` module to display the kernel selection field of the `Convolution` module within its network.

{{<alert class="info" caption="Info">}}
Changes applied to fields in the macro module's panel are applied to their internal network as well.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ title: "Python scripting"
category: "basic_mechanisms"
---

# Example 2: Python scripting
# Example 2: Python Scripting
This example shows how to create module interactions via Python scripting.

## Summary
A new macro module `IsoCSOs` is created providing two viewers in its internal network, `View2D` and `SoExaminerViewer`. Both viewers are included in the panel of the module.

To showcase how Python functions can be implemented in MeVisLab and called from within a module, additional buttons to browse directories and create contours via the `CSOIsoGenerator` are added. Lastly a field listener is implemented reacting to field changes by colorizing contours when the user hovers over them with the mouse.
To showcase how Python functions can be implemented in MeVisLab and called from within a module, additional buttons to browse directories and create contours via the `CSOIsoGenerator` are added. Lastly, a field listener is implemented reacting to field changes by colorizing contours when the user hovers over them with the mouse.

![Screenshot](/examples/basic_mechanisms/macro_modules_and_module_interaction/example2/image2.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Creating a simple application"
category: "basic_mechanisms"
---

# Example 3: Creating a simple application
# Example 3: Creating a Simple Application
In this example, you will learn how to create a simple prototype application in MeVisLab including a user interface (UI) with 2D and 3D viewers.

![Screenshot](/examples/basic_mechanisms/viewer_application/image.png)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: "Creation of Contours"
category: "data_objects"
---

# Contour Example 1: Creation of contours
Contours are stored as Contour Segmented Objects (CSOs) in MeVisLab.
# Contour Example 1: Creation of Contours
Contours are stored as Contour Segmentation Objects (CSOs) in MeVisLab.
This example highlights ways of creating CSOs using modules of the `SoCSOEditor` group.

{{<alert class="info" caption="Info">}}
Expand All @@ -27,16 +27,16 @@ The `SoCSOEditor` module group contains several modules, some of which are liste
* `SoCSOLiveWireEditor`

{{<alert class="info" caption="Info">}}
Whenever Contour Segmented Objects are created, they are temporarily stored by and can be managed with the `CSOManager`.
Whenever Contour Segmentation Objects are created, they are temporarily stored by and can be managed with the `CSOManager`.
{{</alert>}}

In this example, contours are created and colors and styles of these CSOs are customized by using the `SoCSOVisualizationSettings` module.

![Screenshot](/examples/data_objects/contours/example1/image.png)

## Summary
+ Contours are stored as their own abstract data type called Contour Segmented Objects (often abbreviated to *CSO*).
+ The `SoEditor` module group contains several useful modules to create, interact with or modify CSOs.
+ Contours are stored as their own abstract data type called Contour Segmentation Objects (often abbreviated to *CSO*).
+ The `SoCSO\*Editor` module group contains several useful modules to create, interact with or modify CSOs.
+ Created CSOs are temporarily stored and can be managed using the `CSOManager`.

# Download
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ title: "Contour interpolation"
category: "data_objects"
---

# Contour Example 2: Contour interpolation
# Contour Example 2: Contour Interpolation
This example shows how to interpolate CSOs across slices.

## Summary
In this example, semi-automatic countours are created using the `SoCSOLiveWireEditor` module and their depiction is modified using the `SoCSOVisualizationSettings` module.
In this example, semi-automatic countours are created using the `SoCSOLiveWireEditor` module and their visualization is modified using the `SoCSOVisualizationSettings` module.

Additional contours between the manually created ones are generated by the `CSOSliceInterpolator` and added to the `CSOManager`. Different groups of contours are created for the left and right lobe of the lung and colored respectively.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ title: "2D and 3D visualization of contours"
category: "data_objects"
---

# Contour Example 3: 2D and 3D visualization of contours
# Contour Example 3: 2D and 3D Visualization of Contours
This example shows how to display CSOs in 2D as an overlay and additionally how the CSOs are displayed in 3D.

## Summary
Images are loaded by using a `LocalImage` module and displayed in a 2D viewer. A `SoCSOLiveWireEditor` is added to draw contours on the images. The `CSOSliceInterpolator` generates additional contours between the manual CSOs by using linear interpolation.
Images are loaded by using a `LocalImage` module and displayed in a 2D viewer. A `SoCSOLiveWireEditor` is added to draw contours on the images. The `CSOSliceInterpolator` generates additional contours between the manually created CSOs by using linear interpolation.

The module `VoxelizeCSO` is used to create a three-dimensional voxel mask of the contours which can be used as an overlay on the images in a `View2D` panel. The `SoView2DOverlay` module defines the color and opacity of the overlay.
The module `VoxelizeCSO` is used to create a three-dimensional voxel mask of the contours that can be used as an overlay on the images in a `View2D` panel. The `SoView2DOverlay` module defines the color and opacity of the overlay.

Lastly the panel of the `View3D` module is used to visualize the voxel mask in 3D.
Lastly, the panel of the `View3D` module is used to visualize the voxel mask in 3D.

![Screenshot](/examples/data_objects/contours/example3/image.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Annotation of images"
category: "data_objects"
---

# Contour Example 4: Annotation of images
# Contour Example 4: Annotation of Images
This example shows how to add annotations to an image.

## Summary
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ title: "Contours and ghosting"
category: "data_objects"
---

# Contour Example 5: Contours and ghosting
This image shows how to automatically create CSOs based on ISO values. In addition the visualization of CSOs of previous and subsequent slices is shown.
# Contour Example 5: Contours and Ghosting
This image shows how to automatically create CSOs based on isovalues. In addition, the visualization of CSOs of previous and subsequent slices is shown.

## Summary
In this example, the `CSOIsoGenerator` is used to generate contours based on a given ISO value of the image. Contours are generated in the image where the given ISO value is close to the one configured. These contours are stored in the `CSOManager` and ghosting is activated in the `SoCSOVisualizationSettings`.
In this example, the `CSOIsoGenerator` is used to generate contours based on a given isovalue of the image. Contours are generated in the image where the given isovalue is close to the one configured. These contours are stored in the `CSOManager` and ghosting is activated in the `SoCSOVisualizationSettings`.

Ghosting means not only showing contours available on the currently visible slice but also contours of the neighbouring slices with increasing transparency.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Drawing curves"
category: "data_objects"
---

# Curves Example: Drawing curves
# Curves Example: Drawing Curves
This examples shows how to create and render curves.
![Screenshot](/examples/data_objects/curves/example1/image.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Distance between markers"
category: "data_objects"
---

# Marker Example 1: Distance between markers
# Marker Example 1: Distance Between Markers
This examples shows how to create markers in a viewer and measure their distance.
![Screenshot](/examples/data_objects/markers/example1/image.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: "Processing and modification of WEMs"
category: "data_objects"
---

# Surface Example 2: Processing and modification of WEMs
This example shows how to process and modify WEMs using the modules `WEMModify`, `WEMSmooth` and `WEMSurfaceDistance`.
# Surface Example 2: Processing and Modification of WEMs
This example shows how to process and modify WEMs using the modules `WEMModify`, `WEMSmooth`, and `WEMSurfaceDistance`.
![Screenshot](/examples/data_objects/surface_objects/example2/DO7_03.png)

# Download
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ category: "data_objects"
---

# Surface Example 3: Interactions with WEM
## Scale, rotate and move a WEM in a scene
## Scale, Rotate, and Move a WEM in a Scene
In this example, we are using a `SoTransformerDragger` module to apply transformations on a 3D WEM object via mouse interactions.
![Screenshot](/examples/data_objects/surface_objects/example3/image.png)

### Download
You can download the example network [here](/examples/data_objects/surface_objects/example3/SurfaceExample3.mlab)

## Interactively modify WEMs
## Interactively Modify WEMs
In this example, we are using a `SoWEMBulgeEditor` module to modify a WEM using the mouse.
![Screenshot](/examples/data_objects/surface_objects/example3/image2.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: "Interactively moving WEM"
category: "data_objects"
---

# Surface Example 4: Interactively moving WEM
This example shows how to use dragger modules, to modify objects in a 3D viewer.
# Surface Example 4: Interactively Moving WEM
This example shows how to use dragger modules to modify objects in a 3D viewer.
![Screenshot](/examples/data_objects/surface_objects/example4/image.png)

# Download
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ category: "data_objects"
---

# Surface Example 5: WEM - Primitive Value Lists
This example shows how to use Primitive Value Lists (PVLs). With the help of PVLs the distance between the surfaces of WEMs is color coded.
This example shows how to use Primitive Value Lists (PVLs). With the help of PVLs, the distance between the surfaces of WEMs is color-coded.
![Screenshot](/examples/data_objects/surface_objects/example5/image.png)

# Download
Expand Down
16 changes: 8 additions & 8 deletions mevislab.github.io/content/examples/howto.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ menu:
---
### Structure

Each tutorial chapter was used as an umbrella theme to structure related examples, that are linked in a list.
Each tutorial chapter was used as an umbrella theme to structure related examples that are linked in a list.
After clicking any of the linked examples, you will be forwarded to a short description of the feature and have the option to download the resource that produces your desired effect.

The provided files are usually either \*.mlab files or \*.zip archives. You will find a short tutorial on how to add those files into your MeVisLab application, to work with them, below.
The provided files are usually either *.mlab* files or *.zip* archives. You will find a short tutorial on how to add those files into your MeVisLab application to work with them below.

### MeVisLab (\*.mlab) files
MeVisLab files are networks stored as \*.mlab files. <br>
MeVisLab files are networks stored as *.mlab* files. <br>

{{<alert class="info" caption="Info">}}
Double clicking the left mouse button within your MeVisLab workspace works as a shortcut to open files.
Double-clicking the left mouse button within your MeVisLab workspace works as a shortcut to open files.
{{</alert>}}

Files can also be opened using the menu option {{< menuitem "File" "Open">}}.
Expand All @@ -38,7 +38,7 @@ The contents can be extracted into the directory of your package. Make sure to k
The typical directory structure of a MeVisLab package looks like this:
![Package directory structure](/images/examples/howto_1.png "Package directory structure")

The package *TutorialSummary* within the package group *MeVis* is shown above. A package normally at least contains a *Projects* directory, which is where the macro modules are located. When extracting the contents of a \*.zip file, the *Projects* folder of your package should be the target directory.
The package *TutorialSummary* within the package group *MeVis* is shown above. A package typically contains at least a *Projects* directory, which is where the macro modules are located. When extracting the contents of a *.zip* file, the *Projects* folder of your package should be the target directory.

Sometimes we even provide test cases. Extract them into the *TestCases* directory.
![Package directory structure](/images/examples/howto_2.png "Package directory structure")
Expand All @@ -47,10 +47,10 @@ Sometimes we even provide test cases. Extract them into the *TestCases* director
Feel free to create certain directories if they do not exist yet, but make sure to name them conforming the directory structure shown above.
{{</alert>}}

Continuing on your MeVisLab workspace: You might need to reload the module cache after adding macro modules out of \*.zip archives for them to be displayed and ready to be used. To do so, open {{< menuitem "Extras" "Reload Module Database (Clear Cache)" >}}.
Continuing on your MeVisLab workspace: You might need to reload the module cache after adding macro modules out of *.zip* archives for them to be displayed and ready to be used. To do so, open {{< menuitem "Extras" "Reload Module Database (Clear Cache)" >}}.

### Python (\*.py) or Script (\*.script) files
In the rare case that a \*.py or \*.script file is provided, make sure to firstly follow the tutorials related to macro modules and test cases.
### Python (\*.py) or Script (\*.script) Files
In the rare case that a *.py* or *.script* file is provided, make sure to firstly follow the tutorials related to macro modules and test cases.

{{<alert class="warning" caption="Warning">}}
The integration of Python scripts might not add a lot of value for someone that lacks the knowledge conveyed by the tutorials.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Arithmetic operations on two images"
category: "image_processing"
---

# Image Processing Example 1: Arithmetic operations on two images
# Image Processing Example 1: Arithmetic Operations on Two Images
In this example, we apply scalar functions on two images like Add, Multiply, Subtract, etc.

## Summary
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: "Masking images"
category: "image_processing"
---

# Image Processing Example 2: Masking images
In this example, we create a simple mask on an image, so that background pixels are not affected by changes of the window/level values.
# Image Processing Example 2: Masking Images
In this example, we create a simple mask on an image, so that background voxels are not affected by changes of the window/level values.

## Summary
We are loading images by using the `LocalImage` module and show them in a `SynchroView2D`. The same image is shown in the right viewer of the `SynchroView2D` but with a `Threshold` based `Mask`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ title: "Subtract 3D objects"
category: "image_processing"
---

# Image Processing Example 4: Subtract 3D objects
# Image Processing Example 4: Subtract 3D Objects
In this example, we subtract a sphere from another WEM.

## Summary
We are loading images by using the `LocalImage` module and render them as a 3D scene in a `SoExaminerViewer`. We also add a sphere which is then subtracted from the original image.
We are loading images by using the `LocalImage` module and render them as a 3D scene in a `SoExaminerViewer`. We also add a sphere that is then subtracted from the original image.

![Screenshot](/examples/image_processing/example4/image.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ category: "image_processing"
In this example, we are using the currently visible slice from a 2D view as a clip plane in 3D.

## Summary
We are loading images by using the `LocalImage` module and render them as a 2-dimensional image stack `SoRenderArea`. The displayed slice is used to create a 3D plane/clip plane in a `SoExaminerViewer`.
We are loading images by using the `LocalImage` module and render them as a two-dimensional image stack `SoRenderArea`. The displayed slice is used to create a 3D plane/clip plane in a `SoExaminerViewer`.

![Screenshot](/examples/image_processing/example5/image.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ title: "Open Inventor objects"
category: "open_inventor"
---

# Open Inventor Example 1: Open Inventor objects
In this example a simple Open Inventor scene is created. The Open Inventor scene shows three objects of different color and shape.
# Open Inventor Example 1: Open Inventor Objects
In this example, a simple Open Inventor scene is created. The Open Inventor scene shows three objects of different color and shape.

## Summary
A `SoExaminerViewer` is used to render open inventor scenes in 3D. The `SoBackground` module defines the background of the whole scene.
A `SoExaminerViewer` is used to render Open Inventor scenes in 3D. The `SoBackground` module defines the background of the whole scene.

Three 3D objects are created (`SoCone`, `SoSphere` and `SoCube`) having a defined `SoMaterial` module for setting the *DiffuseColor* of the object. The cube and the cone are also transformed by a `SoTransform` module so that they are located next to the centered sphere.
Three 3D objects are created (`SoCone`, `SoSphere`, and `SoCube`) having a defined `SoMaterial` module for setting the *DiffuseColor* of the object. The cube and the cone are also transformed by a `SoTransform` module so that they are located next to the centered sphere.

In the end, all three objects including their materials and transformations are added to the `SoExaminerViewer` by a `SoGroup`.

Expand Down
Loading
Loading