Getting Started

First Steps with MeVisLab

2013-11-21


Table of Contents

1. Before We Start
1.1. Welcome to MeVisLab
1.2. Coverage of the Document
1.3. Intended Audience
1.4. Requirements
1.5. Conventions Used in This Document
1.5.1. Activities
1.5.2. Formatting
1.6. How to Read This Document
1.7. Related MeVisLab Documents
1.8. Glossary (abbreviated)
2. The Nuts and Bolts of MeVisLab
2.1. MeVisLab Basics
2.2. Development in MeVisLab
2.3. MeVisLab Modules
2.4. Fields
2.5. Networks
2.6. Overview of Important Files
2.7. User Interfaces Controls
2.8. Scripting
2.9. How to Find More Information on Networks and Modules
3. Loading and Viewing Images
3.1. The MeVisLab GUI
3.2. Searching and Adding Modules
3.3. Using the ImageLoad Module
3.4. Adding Viewers to ImageLoad
3.4.1. Adding the View2D Module
3.4.2. Adding the View3D Module
3.5. Alternative Ways to Load Images
3.5.1. Dragging Images onto the Workspace
3.5.2. Adding Images via the DICOM Browser
3.5.3. Using the LocalImage Module
3.6. A Note on Importing DICOM Images
4. Implementing a Contour Filter
4.1. Loading the Input Image
4.2. Implementing the Contour Filter
4.3. Parameter Connection for Synchronization
5. Defining a Region of Interest (ROI)
5.1. Creating a Viewer with a Selection Rectangle
5.2. Adding a Second Viewer for the Subimage
5.3. Adding the Interactivity for the Viewers
6. Excursion: Functionality Overview
6.1. Image Handling and Processing
6.1.1. Image Handling
6.1.2. Image Properties
6.1.3. Basic image processing
6.1.4. Filter
6.1.5. Segmentation
6.2. Visualization
6.2.1. 2D Viewing
6.2.2. 3D Viewing
6.2.3. Lookup Tables
6.3. Data Objects
6.3.1. Markers
6.3.2. Curves
6.3.3. Contours
6.3.4. Surface objects
6.4. Miscellaneous
6.4.1. Fields
6.4.2. Diagnostic
7. Creating an Open Inventor Scene
7.1. Introduction to Open Inventor
7.2. Creating the Applicator
7.3. Creating the Interaction
7.4. Creating the Anatomical Image
7.5. Finishing the Complete Open Inventor Scene
8. Starting Development with Package Creation
8.1. What are Packages
8.2. Creating a User Package for Your Project
9. Introduction to Macro Modules
10. Developing a Macro Module for an Applicator
10.1. Creating a Basic Global Macro
10.2. Adding the Macro Parameters and Panel
10.3. Programming the Python Script
10.4. Addition: Shifting the Whole Tip
11. Excursion: Image Processing in ML
11.1. Some Advanced Information on Image Processing
11.2. Structure of MeVisLab
11.3. Coordinate Systems
11.4. Affine Transformations
11.5. DICOM Data and Coordinates
11.6. Coordinate Systems in the MeVisLab GUI
11.7. Data Types for DICOM and TIFF
11.8. Image Processing Concepts: Pages, Slices, VirtualVolumes and more
12. Introduction to C++ Modules
12.1. Module and Connection Specifics on the C++ Level
12.2. Some Tips for Module Design
12.2.1. Macro Modules or C++ Modules?
12.2.2. Combining Functionalities
12.2.3. Tips for Module Testing
12.3. Programming Examples
13. Developing ML Modules
13.1. Creating a New ML Module for Adding Values
13.1.1. Creating the Basic ML Module with the Project Wizard
13.1.2. Preparing the Project
13.1.3. Programming the Functions of the ML Module
13.1.4. GUI Creation/Optimizing
13.1.5. Creating an Example Network and Help File
13.2. Creating an ML Module For Simple Average
13.2.1. Creating the Basic ML Module with the Project Wizard
13.2.2. Editing the Header File of SimpleAverage
13.2.3. Editing the CPP File of SimpleAverage
13.2.4. Testing the Module
13.3. Combining Two Modules in One Project
13.3.1. Copying the Source Files
13.3.2. Editing and Recompiling the .pro File
13.3.3. Editing the Project in the Development Environment
13.3.4. Editing the Module Definition (.def)
13.3.5. Cleaning up Folders and Example Networks
14. Developing a Base Communication
14.1. A Note on Base Types Checks
14.1.1. Base Connectors and Field Types
14.1.2. Overriding Base Type Checks
14.1.3. Implementing Base Type Checks
14.2. Developing the MLBaseOwner Module and the BaseMessenger Class
14.2.1. Creating the BaseCommunication Project in the Wizard
14.2.2. Adding New Files
14.2.3. Adding References to the New Files in MLBaseCommunication.pro
14.2.4. Adding Contents to BaseMessenger.h
14.2.5. Add Contents to BaseMessenger.cpp
14.2.6. Editing MLBaseCommunicationInit.cpp
14.2.7. Editing mlBaseOwner.h
14.2.8. Editing mlBaseOwner.cpp
14.2.9. Making MLBaseCommunication classes known
14.2.10. Adding an object wrapper for MLBaseCommunication objects
14.3. Developing the SoBaseReceiver Module
14.3.1. Creating the New Open Inventor Module with the Wizard
14.3.2. Editing SoBaseReceiver.pro
14.3.3. Edit SoBaseReceiver.h
14.3.4. Editing SoBaseReceiver.cpp
15. Developing WEM and CSO Modules
15.1. Winged Edge Mesh Library (WEM)
15.2. Contour Segmentation Objects (CSO)
16. Using the TestCenter
16.1. Introduction to Testing in MeVisLab
16.2. Developing a Test Case
16.2.1. Creating a New Test Case
16.2.2. Populating the Test Network
16.2.3. Editing the Module Settings
16.2.4. Creating a First Test Script with Manual Threshold Setting
16.2.5. Automating the Test Case with the FieldValueTestCaseEditor
16.2.6. Automating the Test Case with an Iterative Test
16.2.7. Grouping Test Functions
16.2.8. Enhancing Test Reports with ScreenShots
16.2.9. Disabling Test Functions
16.3. Example: Creating a Test Case for Arithmetic1
16.3.1. Preparations
16.3.2. Test Code Implementation
16.3.3. Test with Extended Data Types
16.3.4. General Hints
17. Operating Systems Details
17.1. Windows Guide
17.1.1. Installation on Windows
17.1.2. Module Development on Windows
17.2. Mac OS X Guide
17.3. Linux Guide
17.3.1. MeVisLab on Linux

List of Figures

1.1. Welcome Screen and Documentation Links
2.1. Image Processing Pipeline
2.2. Network Layout
2.3. Module Context Menu: Show Help
3.1. MeVisLab User Interface
3.2. Viewer Selection
3.3. Modules Menu and Module Browser
3.4. Quick Search Options
3.5. Quick Search Results
3.6. ImageLoad Module
3.7. ImageLoad Panel and Output Inspector
3.8. Adjusting the Windowing
3.9. Output Inspector with Image Properties
3.10. Output Inspector with Additional Information Display
3.11. 3D Output Inspector
3.12. Connector Details in the Edit Menu
3.13. Connector Details in the Preferences
3.14. Connector Details Depending on Zoom
3.15. Setting up the Connection
3.16. Panel of View2D
3.17. Opening the Settings Panel of View2D
3.18. Settings Panel of View2D
3.19. Automatic and Settings Panel of View2D
3.20. Connecting the View3D Module
3.21. The View3D Panel
3.22. DICOM Browser
3.23. LocalImage Module
3.24. Show the Internal Network
3.25. Internal Network of the LocalImage Module
3.26. DicomImport
4.1. Example Network Contour Filter
4.2. Viewing the Input Image for the Contour Filter
4.3. Adjust Filter Parameters
4.4. Constructing the Filter Pipeline — Convolution Output
4.5. Constructing the Filter Pipeline — Morphology Output
4.6. Constructing the Filter Pipeline — Arithmetic2 Output
4.7. Creating a New Group
4.8. Resulting Contour Filter Network
4.9. Establishing the Parameter Connections
4.10. Resulting Network
5.1. Example Network ROISelection
5.2. Viewer with Selection Rectangle
5.3. Viewer for the Subimage
5.4. Searching for World to Voxel Conversion
5.5. WorldVoxelConvert Panel
5.6. WorldVoxelConvert Modules Added
5.7. Adding the Parameter Connections
5.8. Example Network ROI Selection
7.1. Example Network: Open Inventor Result
7.2. Applicator Only
7.3. Traversing in Open Inventor
7.4. Creating the Applicator Shaft
7.5. Coloring the Applicator Shaft
7.6. Adding an Applicator Tip
7.7. Adding Translation and Grouping
7.8. Finishing the Applicator
7.9. Using SoCenterballManip
7.10. SoCenterballManip — Turned
7.11. Connecting Parameters
7.12. Combining Interaction and Applicator
7.13. Loading a Local Image
7.14. Adding the GigaVoxel Renderer
7.15. Copying the Windowing Modules from View3D
7.16. Adding the Windowing to the Applicator
7.17. Combining the Groups
7.18. Combined Graphic Elements
7.19. Adding the Applicator Scaling
7.20. Improved Applicator/Interaction Arrangement
8.1. Example for a Package Tree
8.2. Preferences — Packages
8.3. Package Wizard
10.1. Starting a new Macro from the Existing Applicator
10.2. Existing Applicator with Clean Instance Names
10.3. Creating a Local Macro
10.4. Selecting a Genre
10.5. Module Properties
10.6. File Browser with the New Macro Module Files
10.7. ApplicatorMacro as Macro Module
10.8. ApplicatorMacro.script in MATE
10.9. ApplicatorMacro Module with Output Connector
10.10. Internal Network of the ApplicatorMacro Module
10.11. Automatic Panel of the ApplicatorMacro Module
10.12. Panel of the ApplicatorMacro Module
10.13. Parameters for Diameter Setting
10.14. Changing the Diameter of the Applicator
10.15. Strange Behavior of the ApplicatorMacro
10.16. Adding the Correct Tip Translation
10.17. Complete ApplicatorMacro
10.18. Feeding the SoCalculator Module
10.19. Improved Applicator Macro Module
11.1. MeVisLab Structure
11.2. Coordinate Systems
11.3. Matrix Multiplication
11.4. World Coordinates in Context of the Human Body
11.5. The DICOM Tag Viewer
11.6. Image Properties for an Ideal Image
11.7. Image Properties for a Sagittal Image
11.8. Image Properties in the Info Module
13.1. Entering the ML Module Properties
13.2. Entering the Imaging Module Properties
13.3. Additional Module Properties
13.4. Entering the ML Module Properties — Fields
13.5. Project in Visual C++ 2005
13.6. Project in Xcode
13.7. Project in Code::Blocks
13.8. Example Network for SimpleAdd
14.1. Example Network for ML Module and an Open Inventor Module
14.2. Mouse-over Information for Base Connectors
14.3. Mouse-over Information for Different Base Connectors in One Module
14.4. Base Field Connection Checked for Type Compatibility
14.5. Project Wizard — Module Properties
14.6. Project Wizard — Imaging Module Properties
14.7. Project Wizard — Additional Module Properties
14.8. Project Wizard — Module Field Interface
14.9. Resulting BaseOwner Module
14.10. SoBaseReceiver Module Alternative
14.11. Project Wizard — General Module Properties
14.12. Project Wizard — Module Type
14.13. Project Wizard — Module Field Interface
15.1. WEM IsoSurface Example Network
15.2. WEM Extrude Example Network
15.3. Freehand Contours with the SoView2CSOEditor Example Network
16.1. Creating a New Test Case
16.2. New Test Case in Test Selection
16.3. New Test Case in the Package Path
16.4. Basic Test Case Setup
16.5. Test Functions in the TestCaseManager
16.6. Report for ManualTest_75
16.7. The FieldValueTestCaseEditor Panel
16.8. Dragging Fields Into the Parameter List
16.9. The Resulting Panel
16.10. Report for AutomaticTest_1
16.11. Report for AutomaticTest_2
16.12. Select Test Function Results
16.13. Grouped Test Functions
16.14. Report for ScreenShot Example
16.15. Test Network for Arithmetic1
17.1. MeVisLab Icons

List of Tables

1.1. System Requirements
1.2. List of MeVisLab Documents
2.1. Module Types
2.2. Connectors
2.3. Connections
2.4. Important Files