MeVisLab
1
MIP Prototyping
2
MeVisLab
http://www.mevislab.de/
In more than 20 years of development, MeVisLab has become one of the most powerful development platforms for medical image computing
research.
image processing, visualization and interaction modules can be combined to complex image processing networks using a graphical programming
approach
can easily be integrated using a modular, platform independent C++ class library.
JavaScript or Python components can be added to implement dynamic functionality on both the network and the user interface level.
based on the Qt application framework and the OpenInventor 3D visualization toolkit
ITK and VTKAddOns
3
Rapid Application Prototyping Environment
Cross-platform (Windows, Mac OS X, Linux)
Free for non-commercial usage
Supported file formats
DICOM, TIFF, DICOM/TIFF, RAW, LUMISYS, PNM, Analyze, PNG, JPEG
Currently 920+ Standard modules in the MeVisLab SDK core, 3000+ modules delivered in total
with 360+ ITK modules, 1470+ VTK modules, and 300+
modules in the Fraunhofer MEVIS release
4
MeVisLab development
Three levels
Visual level
Programming with “plug and play”
Individual image processing, visualization and interaction modules can be combined to complex image processing networks using a graphical
programming approach.
Scripting level
Creating macro modules and applications based on macro modules
Python scripting components can be added to implement dynamic functionality on both the network and the user interface level.
C++ level
Programming modules
New algorithms can easily be integrated using the modular, platform- independent C++ class library.
5
Image Processing
Filters
Diffusion filters, morphology filters, kernel filters, Hessian, and vesselness filters
Segmentation
Region growing, live wire, fuzzy connectedness, threshold, manual contours
Transformations
Affine transformations, distance transformations, projection and Radon transforms, manual registration
Statistics
Histograms, global image statistics, box counting dimension
Other
Unary/binary arithmetic, resampling/reformatting, dynamic data analysis, noise/test pattern generators
6
Modules for Visualization
MeVisLab provides modules for visualizing image data and other data objects in 2D and 3D.
A set of lookup table (LUT) modules allows applying basic window/level adjustment or flexible color encoding
schemes.
The visualization functionality in MeVisLab is based on the well-established visualization and interaction
library Open Inventor.
7
High-quality Volume Renderer:
MeVisLab Giga Voxel Renderer
MeVisLab features a high-quality volume renderer that is based on OpenGL and its extensions.
It supports the rendering of large volume datasets, even if they do not fit into the main memory.
An optimized, multi-resolution technique based on an
octree representation and 3D textures adaptively selects the best resolution depending on camera position, volume of interest, and available resources.
8
MeVisLab Software Development Kit (SDK)
Using the MeVisLab Software Development Kit (SDK), a developer is able to implement and test own algorithms, visualization or interaction methods, or even complete processing workflows.
The MeVisLab SDK offers a variety of features that support module programming, scripting, and network development.
9
Open Inventor
An object-oriented 3D toolkit developed by Silicon Graphics (SGI)
offering a comprehensive solution to interactive graphics programming problems
Most of the visualization modules of MeVisLab make use of Open Inventor.
10
Open Inventor (OIV)
Direct Open Inventor node support
Open Inventor:
Scene graph paradigm
Object, rendering, transformation, property, … nodes
Based on OpenGL
Extensions to support 2D image viewing/manipulation
Mixed ML/Open Inventor Modules
http://www.mevislab.de/mevislab/features/open-inventor/
11
Open Inventor Scene Graph
Scene objects are represented by nodes
Size and position is defined by transformation nodes
A rendering node represents the root of the scene graph
12
Integration of Visualization,
Segmentation and Registration Toolkits
The Insight Segmentation and Registration Toolkit (ITK) is an extensive collection of leading-edge algorithms for
registration, segmentation, and analysis of multidimensional data.
It is an open-source, cross-platform software package written in C++ and supported by the US National Library of Medicine.
The Visualization ToolKit (VTK) is an open source, freely available software library for 3D computer graphics,
image processing, and visualization.
It has become one of the most popular open source toolkits for visualization purposes and is used by thousands of
researchers and developers around the world.
13
MeVisLab User Interface
14
MeVisLab Modules
15
Image Processing Pipeline
16
Connectors
Connections
17
Network Layout
18
Network Quick Search
19
Using Groups
20
Using Notes
21
Scripting (MDL)
User interfaces are created with the “Module Definition Language” (MDL)
Abstract hierarchical GUI language
Interpreted at run-time, allows rapid prototyping
www.mevislab.de/fileadmin/docs/html/mdl/
22
Getting Started: Chapter 11. GUI Design in MeVisLab
23
Application Prototyping
Hide network complexity
Design user interfaces
Scripting for dynamic components
24
View2D Module
25
View3D Module
26
Implementing the Contour Filter
27
28
Creating a New Group
29
Parameter Connection for Synchronization
30
Getting Started: Chapter 5. Defining a Region of Interest
a network that allows defining a 2D region of interest
(ROI), that is by selecting a region of the image in the first viewer, the selected region is displayed as a subimage in a second viewer
31
Getting Started: Chapter 7. Creating an Open Inventor Scene
a dynamically definable applicator (needle for minimally invasive surgeries) shall be placed at a position and an angle relative to the rendering of an anatomical image
32
2D Viewers
Modular 2D Viewer Library (SoView2D)
Hardware accelerated using textures and shaders
Supports interactive LUT even on large images
Extension mechanism supports:
Overlays
Markers
ROIs
Contours
User extensions can add drawing and event handling
33
Winged Edge Mesh Library (WEM)
Data structure proposed by Baumgart, 1975
Mesh consists of Nodes, Edges and Faces
Dense pointer structure of incident primitives
Fast access to neighboring structures
Pointer links in a neighborhood
34
WEM Modules Overview
Generation:
WEMIsoSurface
Processing:
WEMCollapseEdges
WEMSmooth
WEMPurge
WEMClip
…
Rendering:
SoWEMRenderer
Different Render Modes
Optional Coloring by LUT Values
35
WEM Sceneshots
Network with iso surface
generation and polygon reduction
A liver surface colored by a LUT in bone context
36
Winged Edge Mesh IsoSurface
Four subnetworks, each showing different features of the WEMIsoSurface
37
Contour Segmentation Objects (CSO)
CSO library
provides data structures and modules for interactive or automatic generation of contours in voxel images
Contours can be analyzed, maintained, grouped and converted back into a voxel image
CSO consists of a number of seed points and a number of path point lists
38
CSO Modules Overview
Generation (without interaction):
CSOIsoGenerator
Processing (with interaction):
CSOFreehandProcessor, CSOLiveWireProcessor, CSOIsoProcessor, CSOBulgeProcessor, …
Rendering
SoView2DCSOEditor, SoCSO3DVis
Misc
CSOConvertToImage, CSOConvertTo3DMask, CSOFilter, CSOManager, CSOLoad / CSOSave, …
39
SoView2DCSOEditor Example Network
40
SoView2DCSOExtensibleEditor Example Network
41
SoCSO3DVis Example Network
42
3D
43
44
DICOM Support
Import of 2D/3D/4D DICOM datasets
MeVisLab DICOM Service runs as Windows Service or UNIX Daemon and receives data from PACS even when user is logged out
Export of DICOM slices to disk
DICOM-Store allows to send data to PACS
45
Fuzzy
FuzzyCluster
an implementation of the fuzzy c-means algorithm that
classifies an image into different clusters depending on the gray values
FuzzyConnectDistance
a segmentation algorithm based on Fuzzy Connectedness extended by the possibility to use a property based on the distance of image
elements to the center of the object to be segmented while calculating membership values
FuzzyObjectLabeling
46
FCM
47
48
ITK Wrapper
ITK – Insight Toolkit (www.itk.org)
Open Source Library for Medical Image Processing and Registration
about 200 Modules for Standard Image Processing such as
Image Arithmetics
Kernel-based and Diffusion Filtering
Levelset and Segmentation Filtering
Warping, Resampling Filters
about 90 Modules Registration-Related Algorithms
Interpolators
Metrics
Optimizers
Transformations
49
ITK Book Examples
50
ITK Watershed
51
Example Network of itkWatershedImageFilter
52
53
VTK Wrapper
VTK – Visualization Toolkit (www.vtk.org)
Visualization, Image Processing and Filtering Library for images, meshes, grids, data sets etc.
about 1000 Modules for
2D/3D Image Processing
Grid, Mesh, Surface, and Data Filtering
Pickers
Properties and Actors
Mappers
Renderers, Widgets, Viewers
Sources, Readers and Writers
Transformations
54
VTK Example 1: Contour Filter
55
VTK Example 2: VTK/OIV mix
SoVTK module allows VTK rendering as part of an Open Inventor scene graph
56
vtkBoxWidget2 Example Network
57
ITK Image Registration
58
Skeletonization
Skeletonization of a binary image by successive erosion of border voxels
vessel centerline extraction
in 2d and 3d
59
60