Glossary

Module

The base class for all image processing modules. By overloading its methods and changing the class configuration, all desired image processing algorithms can be implemented.

MLMemoryManager

The library which manages buffers in memory that store intermediate results of (image) calculations which potentially will be reused. By reusing them, time for recalculating them is saved.

Field

A C++ class or object which usually encapsulates a data value, e.g., an integer or a vector. Fields can be observed so that the observer is notified when the field is changed, and fields can be connected among each other so that values changes are automatically propagated to other fields. Fields have a type and their values can be set or retrieved as a string or as a typed value. Thus, values between different typed fields can also be propagated as string values.

Kernel

A usually rectangular matrix or array of values or only a region which is placed onto a image voxel. A certain region around a voxel is specified and it is easy to calculate a new voxel value from that area. Often, a kernel is moved over all voxels of an image to filter it. Typical kernel operations on images are smoothing, sharpening, dilation, erosion, rank filters and many more.

DICOM

DICOM = Digital Imaging and Communications in M edicine standard. Standard communication protocol and file format for medical image data and information.

Doxygen

Doxygen is a documentation system for C++, C, Java, Objective-C, IDL (Corba and Microsoft® flavors) and to some extent PHP, C# and D. It is used to document the source of MeVisLab, the ML and ML modules. See http://www.stack.nl/~dimitri/doxygen/index.html for more information on this free software.

Exceptions (Catching)

A way to handle (un)intentional errors or undesired/special states in programs. Often used to detect and/or handle errors in programs.

FieldContainer

A C++ class used especially in Module objects to store and manage a list of fields containing parameters for ML modules.

MeVisLab

The Image Laboratory, a toolkit for rapid prototyping and development of applications. It uses the ML and Open Inventor™ a lot and offers specialized features for medical imaging.

Inplace Calculation

Usually an algorithm has input (image) data in one or more buffers and calculates a result written in an output buffer. This requires at least two buffers. Some algorithms can write the result directly into the input buffer(s) which is also the output buffer at the same time which then work or calculate inplace. Hence the creation/initialization and destruction of a buffer is spared which usually results in better performance.

Internationalization

Internationalization is the capability of software to be used in systems with different languages. This e.g., requires translated texts and unicode support (see Chapter 9, Unicode Support ).

ITK

The Insight Segmentation and Registration Toolkit ™. A large and well known open-source image processing library which has been wrapped in many parts for MeVisLab to work fine with other ML modules. See www.itk.org and www.mevislab.de for details.

Lazy Evaluation

Information is only processed/evaluated by the ML when it is really needed or requested. Otherwise, the ML is lazy. This is similar to Processing On Demand or the Pull Model.

ML

The MeVis Image (Processing) Library.

Multithreading

The possibility to execute program code in parallel, e.g., of CPUs which can result in performance gains. Thus, two pages of an image, for example, can be processed in parallel by two CPUs which is faster than processing the pages sequentially. Such a program code, however, must fulfill some requirements so that programming with multithreading may become difficult.

Node

The SoNode class is a base class inherited by many Open Inventor™ classes to implement 3D objects, their properties or behavior, like 3D text, cubes, cones, transformations, colors, textures, etc. They usually can be composed to a 3D scene graph to build a 3D visualization.

Open Inventor

An object-oriented 3D toolkit, a library of objects and methods used for interactive 3D graphics.

Page

An image sub-region of predefined extent; an (paged) image can usually be composed of a set of non-overlapping rectangular pages of identical extent. Pages may reach outside an image. A page is also a tile (or subimage), but tiles (subimages) are not necessarily pages.

Page-Based Image Processing

Processing an image not as a whole but in fractions, where only those fractions of the image are calculated which are really needed to achieve the result.

Processing On Demand

Results are only calculated when they are really needed; so a display needs to request the data it wants to show; i.e nothing is calculated without that request. This is similar to Lazy Evaluation or Pull Model.

Pull Model

Information is pulled (from a Viewer, for example) by other modules before the information is shown in a display; this is similar to Processing On Demand or Lazy Evaluation.

Runtime Type System

Database that stores information about many or all important class types of the library. It is also used to create instances from classes specified by a string name, to retrieve inheritance information and the name of the dynamic linked library where it comes from.

SubImage

A (usually rectangular) sub-region of an image; synonym for "tile".

Tile

A (usually rectangular) sub-region of an image; synonym for "subimage".

Unicode

Unicodes are used to provide string encodings with international characters. They are needed when language-specific characters or e.g. Chinese symbols are to be handled in strings.

VirtualVolume

Permits access to a paged image as if it was a global image. Only used image pages are mapped into memory, all other areas are not. Hence, an image of a potentially unlimited size can be handled using only a minimum amount of memory.

Voxel

The entity an image is composed from. Usually, one number such as an integer or a floating point number, but sometime also a structure containing several entities. The term "voxel" is made up from the words Volume and pixel (Picture Element).

VTK

The Visualization Toolkit ™. A large and well known open-source visualization library which has been wrapped in many parts to work also in MeVisLab. See http://www.vtk.org and https://www.mevislab.de for details.

Wizard

A wizard (more specifically called Module Wizard in this document) is a tool supporting a developer to create ML modules and the context needed for compiling and integrating the ML modules into an application. A module wizard is provided by MeVisLab which uses ML modules a lot. See Appendix A, Basics about ML Programming and Projects for details.