MeVisLab
Encyclopedia
MeVisLab is a cross-platform application framework
Application framework
In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of an application for a specific development environment ....

 for medical image processing and scientific visualization
Scientific visualization
Scientific visualization is an interdisciplinary branch of science according to Friendly "primarily concerned with the visualization of three-dimensional phenomena , where the emphasis is on realistic renderings of volumes, surfaces, illumination sources, and so forth, perhaps...

. It includes advanced algorithms for image registration
Image registration
Image registration is the process of transforming different sets of data into one coordinate system. Data may be multiple photographs, data from different sensors, from different times, or from different viewpoints. It is used in computer vision, medical imaging, military automatic target...

, segmentation, and quantitative morphological and functional image analysis. An IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 for graphical programming and rapid user interface prototyping is available.

MeVisLab is written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 and uses the Qt framework for graphical user interfaces. It is available cross-platform on Windows, Linux, and Mac OS X. The software development is done in cooperation between MeVis Medical Solutions AG and Fraunhofer MEVIS.

A freeware version of the MeVislab SDK is available (see Licensing). Open source modules are delivered as MeVisLab Public Sources in the SDK and available from the MeVisLab Community and Community Sources project.

History

MeVisLab development began in 1993 with the software ILAB1 of the CeVis Institute, written in C++. It allowed to interactively connect algorithms of the Image Vision Library (IL) on Silicon Graphics (SGI)
Silicon Graphics
Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark...

 to form image processing networks. In 1995, the newly founded MeVis Research GmbH (which became Fraunhofer MEVIS
Fraunhofer Society
The Fraunhofer Society is a German research organization with 60 institutes spread throughout Germany, each focusing on different fields of applied science . It employs around 18,000, mainly scientists and engineers, with an annual research budget of about €1.65 billion...

 in 2009) took over the ILAB development and released ILAB2 and ILAB3. OpenInventor
Open Inventor
Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...

 and Tcl
Tcl
Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...

 scripting was integrated but both programs were still running on SGI only.
In 2000, ILAB4 was released with the core rewritten in Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

 for Windows. For being able to move away from the SGI platform, the Image Vision Library was substituted by the platform-independent, inhouse-developed MeVis Image Processing Library (ML). In 2002, the code was adapted to work on the application framework Qt.

In 2004, the software was released under the name MeVisLab. It contained an improved IDE and was available on Windows and Linux . See the Release history for details.

In 2007, MeVisLab has been acquired by MeVis Medical Solutions AG. Since then, MeVisLab has been continued as a collaborative project between the MeVis Medical Solutions and Fraunhofer MEVIS.

Features

MeVisLab features include :
  • Image processing with the MeVis Image Processing Library (ML): The ML is a request-driven, page-based, modular, expandable C++ image processing
    Image processing
    In electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...

     library supporting up to six image dimensions (x, y, z, color, time, user dimensions). It offers a priority-controlled page cache and high performance for large data sets.

  • 2D image viewing: Fast, modular, extensible 2D viewers with combined 2D
    2D computer graphics
    2D computer graphics is the computer-based generation of digital images—mostly from two-dimensional models and by techniques specific to them...

    /3D
    3D computer graphics
    3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

     rendering are implemented, supporting slab rendering (volume rendering/MIP
    Maximum intensity projection
    In scientific visualization, a maximum intensity projection is a volume rendering method for 3D data that projects in the visualization plane the voxels with maximum intensity that fall in the way of parallel rays traced from the viewpoint to the plane of projection...

    ), overlays, point/ROI selection, Multiplanar Reformations (MPR)
    MPR
    -In medicine:*Multi-planar reformatting, or multiplanar reconstruction, a term used in medical imaging to refer to the reconstruction of images in the coronal and sagittal planes in conjunction with the original axial dataset; see X-ray_computed_tomography#Multiplanar_reconstruction*Mannose...

    , as well as interactive editing of marker objects (points, vectors, discs, spheres, etc.)

  • Volume rendering: A high-quality volume renderer
    Volume rendering
    In scientific visualization and computer graphics, volume rendering is a set of techniques used to display a 2D projection of a 3D discretely sampled data set.A typical 3D data set is a group of 2D slice images acquired by aCT, MRI, or MicroCT scanner....

     (Giga Voxel Renderer, GVR) based on OpenGL
    OpenGL
    OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

    /Open Inventor
    Open Inventor
    Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...

     is available. It supports large image volumes (e.g., 512x512x2000 CT volumes, 12bit), time-varying data (e.g. dynamic MRI volumes), lookup table
    Lookup table
    In computer science, a lookup table is a data structure, usually an array or associative array, often used to replace a runtime computation with a simpler array indexing operation. The savings in terms of processing time can be significant, since retrieving a value from memory is often faster than...

    s, interactive region of interest
    Region of interest
    A Region of Interest, often abbreviated ROI, is a selected subset of samples within a dataset identified for a particular purpose.For example:* on a waveform , a time or frequency interval...

    , sub-volume selection, modular, multi-purpose GLSL
    GLSL
    OpenGL Shading Language , is a high-level shading language based on the syntax of the C programming language...

     shader
    Shader
    In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

     framework.

  • DICOM and other file formats: DICOM
    Digital Imaging and Communications in Medicine
    DICOM is a standard for handling, storing, printing, and transmitting information in medical imaging. It includes a file format definition and a network communications protocol. The communication protocol is an application protocol that uses TCP/IP to communicate between systems...

     is supported via an import step that automatically recognizes series of 2D DICOM frames that belong to the same 3D/4D image volume. The data can be browsed with a configurable DICOM browser. DICOM storage to PACS
    Picture archiving and communication system
    A picture archiving and communication system is a medical imaging technology which provides economical storage of, and convenient access to, images from multiple modalities . Electronic images and reports are transmitted digitally via PACS; this eliminates the need to manually file, retrieve, or...

     is possible. Other supported file formats include TIFF (2D/3D, RGBA), Analyze, RAW, PNG, JPG, BMP, and more.

  • Tool frameworks: Modular class and module libraries for markers, curves, histogram
    Histogram
    In statistics, a histogram is a graphical representation showing a visual impression of the distribution of data. It is an estimate of the probability distribution of a continuous variable and was first introduced by Karl Pearson...

    s, Winged-Edged Meshes (WEM)
    Winged edge
    The winged edge data structure is a data representation used to describe polygon models in computer graphics. It explicitly describes the geometry and topology of faces, edges, and vertices when three or more surfaces come together and meet at a common edge...

     and Contour Segmentation Objects (CSO) are available.


  • Scripting support: Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

     can be used for script controlled access to a large part of the MeVisLab functionality. The script binding to Qt is implemented via PythonQt. For image processing via Python, NumPy is available. Object-oriented Python programming in MeVisLab is possible. JavaScript
    JavaScript
    JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

     based on QSA is available as legacy support (QSA has been discontinued by Trolltech in 2008 in favor of QtScript).

  • Integrated open source image processing and visualization libraries: Three open source libraries are integrated: Open Inventor
    Open Inventor
    Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...

    , based on the original SGI source code released as open source in 2000 ; Insight Toolkit (ITK)
    Insight Segmentation and Registration Toolkit
    ITK is a cross-platform, open-source application development framework widely used for the development of image segmentation and image registration programs. Segmentation is the process of identifying and classifying data found in a digitally sampled representation. Typically the sampled...

    , made available as MeVisLab modules; Visualization Toolkit (VTK)
    VTK
    The Visualization Toolkit is an open-source, freely available software system for 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several interpreted interface layers including Tcl/Tk, Java, and Python. Kitware, whose team created and continues to...

    : made available as MeVisLab modules .

  • Comprehensive module library: The MeVisLab module library comprises a total of 2600 modules, including 800 standard modules and 1800 ITK/VTK modules.

MeVisLab principles

MeVisLab is a modular development framework. Based on modules, networks can be created and applications can be built.

To support the creation of image processing networks, MeVisLab offers an IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 that allows data-flow modelling by visual programming
Visual programming language
In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used...

. Important IDE features are the multiple document interface (MDI)
Multiple document interface
Graphical computer applications with a multiple document interface are those whose windows reside under a single parent window , as opposed to all windows being separate from each other . Such systems often allow child windows to embed other windows inside them as well, creating complex nested...

, module and connection inspectors with docking ability, advanced search, scripting and debugging consoles, movie and screenshot generation and galleries, module testing and error handling support.

In the visual network editor, modules can be added and combined to set up data flow and parameter synchronization. The resulting networks can be modified dynamically by scripts at runtime. Macro modules can be created to encapsulate subnetworks of modules, scripting functionality and high-level algorithms.

On top of the networks, the medical application level with viewers and UI panels can be added. Panels are written in the MeVisLab Definition Language (MDL), can be scripted with Python or JavaScript and styled using MeVisLab-internal mechanisms or Qt features.

The development of own modules written in C++ or Python is supported by wizards
Wizard (software)
A software wizard or setup assistant is a user interface type that presents a user with a sequence of dialog boxes that lead the user through a series of well-defined steps. Tasks that are complex, infrequently performed, or unfamiliar may be easier to perform using a wizard...

.

Image Gallery

MeVisLab forum

MeVisLab offers a very well-supported public forum in which core developers as well as users of all levels of experience share information. A free registration is necessary.

Release history

The table below lists all main releases, without release candidates and maintenance releases. Various larger changes were made from version 1.6 to version 2.0. For detailed changes in the ML, see the ML Release Notes. For release news, see Release News on the MeVisLab Homepage.
Release Year Platform Comment Company
ILAB1 1993 Silicon Graphics (SGI) Image Vision Library (IL) CeVis Institute, University Bremen
ILAB2 1995 MeVis Research GmbH (now Fraunhofer MEVIS)
ILAB3 1995
ILAB4 2000 Windows Core in Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

. In 2002, move to Qt framework (Windows, Linux; internal release)
MeVisLab 1.0 2004 Windows, Linux Improved IDE, module wizards
MeVisLab 1.1 2005 Large volumes support; full Python script support in addition to JavaScript; Unicode
MeVisLab 1.2 2005 Core refactored; improved OpenGL support; JPG and PNG support
MeVisLab 1.3 2006 Release of MeVisLab Public Sources ; release of first ITK and VTK integration (as AddOn)
MeVisLab 1.4 2006 Output inspectors; improved GVR; improved WEM library
MeVisLab 1.5 2007 Windows, Linux, Mac OS X (PPC & Intel 32 bit) Support for Microsoft Visual Studio 2003 and 2005; CSO library; Shader Framework; update to Qt4
MeVisLab 1.6 2008 Windows, Linux, Mac OS X (Intel 32 bit) Integrated text editor Mate; scripting console; improved volume rendering; demo networks
MeVisLab 2.0 2009 Windows (32/64 bit), Linux (32/64 bit), Mac OS X (Intel 32 bit) MeVisLab Public Sources are integral part; ships with third party headers and libraries;
improved package structure for module management; ToolRunner application
MeVis Medical Solutions AG
MeVisLab 2.1 2010 Windows (32/64 bit), Linux (32/64 bit), Mac OS X (Intel 64 bit) Integration of NumPy; integration of PythonQt; Python image processing modules possible;
MDL extendable with Qt widgets; update to Qt 4.6.2 under LGPL license; GVR user extensions; improved ML; MLBackgroundTasks API

Fields of application, research projects

MeVisLab has been used in a wide range of medical and clinical applications, including surgery planning for liver, lung, head and neck and other body regions, analysis of dynamic, contrast enhanced breast and Prostate MRI, quantitative analysis of neurologic and cardiovascular image series, orthopedic quantification and visualization, tumor lesion volumetry and therapy monitoring, enhanced visualization of mammograms, 3D breast ultrasound and tomosynthesis image data, and many other applications. MeVisLab is also used as a training and teaching tool for image processing (both general and medical) and visualization techniques.

MeVisLab is and has been used in many research projects, including:

Based on MeVisLab, the MedicalExplorationToolkit was developed to improve application development. It is available as AddOn package for MeVisLab 1.5.2. and 1.6 on Windows.

Licensing

The MeVisLab SDK can be downloaded at no cost and without prior registration. The software can be used under three different license models:
  • MeVisLab SDK Unregistered: This license model applies if the MeVisLab SDK is used without an additional license file. Under this license, a restricted feature set is available. The terms of use are identical to those of the Non-commercial MeVisLab SDK (see below).
  • Non-commercial MeVisLab SDK license: For strictly private use or for use at non-commercial institutions, such as universities, other academic institutions or non-profit organizations. Full feature set, requires a separate license file with costs.
  • Commercial MeVisLab SDK license: For use at commercial companies, institutions or research laboratories. Full feature set, requires a separate license file with costs.


None of the above license models permits the redistribution of the MeVisLab SDK or parts thereof, or using MeVisLab or parts thereof as part of a commercial service or product.

The Fraunhofer MEVIS Release Modules are intellectual property of Fraunhofer MEVIS and strictly for non-commercial purposes.

MeVisLab public sources

As of MeVisLab 1.3, selected MeVisLab Standard modules are open source and available as MeVisLab Public Sources. As of MeVisLab 2.0, these public sources are fully integrated in the MeVisLab SDK.

The source code is released under BSD license.

MeVisLab community and community sources

In the MeVisLab Community Project, open-source modules for MeVisLab are contributed by a number of institutions. Contributors as of 2010 are:


The source code is released under BSD or LGPL license and managed in a central repository on SourceForge. Continuous builds are offered for various platforms.

PythonQt

PythonQt is a Python script binding for the Qt framework. It was originally written to make MeVisLab scriptable and then published as open source in 2007 under LGPL. An introduction of PythonQt was published in Qt Quarterly, which also includes a comparison to Pyqt
PyQt
PyQt is a Python binding of the cross-platform GUI toolkit Qt. It is one of the alternatives for GUI programming in Python to Tkinter, which is bundled with Python. Other popular alternatives are PySide, PyGTK, and wxPython. Like Qt, PyQt is free software. PyQt is implemented as a Python...

.

PythonQt sources and documentation are available from SourceForge.

Similar software projects

  • Slicer (3DSlicer)
    3DSlicer
    3D Slicer is a free, open source software package for image analysis and scientific visualization. Slicer is used in a variety of medical applications, including autism, multiple sclerosis, systemic lupus erythematosus, prostate cancer, schizophrenia, orthopedic biomechanics, COPD, cardiovascular...

    , an open source, multi-platform project for image analysis and scientific visualization; originally developed by the Surgical Planning Laboratory at the Brigham and Women's Hospital and the MIT Artificial Intelligence Laboratory
  • SciRun, an open source, multi-platform scientific problem solving environment
    Problem Solving Environment
    A Problem Solving Environment is a specialized computer software for solving one class of problems, combining automated problem-solving methods with human-oriented tools for guiding the problem resolution....

     (PSE) for modeling, simulation and visualization of scientific problems, developed at the Center for Integrative Biomedical Computing at the SCI, University of Utah
    Scientific Computing and Imaging Institute
    The Scientific Computing and Imaging Institute is a permanent research institute at the University of Utah. It is a leader in engineering and research in the areas of scientific computing, visualization, and imaging...

  • eXtensible Imaging Platform (XIP) an open source, multi-platform project for rapidly developing medical imaging applications from an extensible set of modular elements; originally developed at Siemens Corporate Research in Princeton
  • Medical Imaging Interaction Toolkit (MITK) an open source project for developing interactive medical image processing software, developed at the Deutsche Krebsforschungszentrum, Heidelberg
  • Voreen, an open source, multi-platform volume rendering engine, maintained by the Visualization and Computer Graphics Research Group (VisCG) at the University of Muenster
  • DeVIDE, an open source, multi-platform software for rapid prototyping, testing and deployment of visualisation and image processing algorithms, developed by the Visualisation group at the TU Delft.
  • Amira, a commercial multi-platform software for visualization, analysis and manipulation of bio-medical data

Further reading


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK