Monday, November 5, 2007

Introduction to MevisLab

Are you one of the many who are not comfortable with C++ programming but need some tool to perform different image processing, visualization and segmentation? Then you have an answer in the form of a visual programming software called MevisLab.

Visualization and Segmentation process have a pipeline architecture as output from one step is fed as input to the next stage. The first step always involves either reading or creating a data which feeds to a processing stage like filtering, segmentation etc. The output of this stage is then fed to the output stage where the processed data is either visualized or output as a file.

Visualization Toolkit (vtk) and Insight Toolkit (itk) are libraries that perform complex image processing operation using C++. They are freeware and hence users can avoid reinventing the wheel when performing their image processing operation and instead focus on their research. They are also being actively maintained by Kitware Inc and researchers from across the globe, actively contribute new algorithms. The code can be ported to most of the common OS and for super-computing users, parallel versions are also under development.

In the traditional programming using vtk and itk, the user has to be knowledgeable in C++ and specifically template based programming. For the unfortunate few who are not experts in C++ programming and for people who need a quicker turnaround in their testing of image processing algorithm, visual programming is the best solution.

Visual programming consists of creating a flow chart of operation that needs to be performed. Since vtk and itk are pipeline based, they naturally lend themselves to flow chart based visual programming.

MevisLab is being developed by MeVis Research GmbH, Bremen, Germany. Since its interface was developed using Qt (TrollTech Inc), it works on Windows, Linux and MacOSX. The software is free for non-commercial use and supports various file formats like DICOM, jpeg, tiff, 3d Studio Max, STL, VRML etc. Various operations can then be performed using OpenInventor, vtk, itk etc.

Here is a simple example of a pipeline in MevisLab.

MevisLab provides various methods for reading the various file formats found in images and 3D models. The example above demonstrates one of the method, ImgLoad, that can read most of the common image formats like jpeg, bmp, png etc.
Once the image(s) are read, they can be manipulated. In this example, the processing operation is the addition of "Salt and Pepper noise." This operation could be simple as in this example or could be complex operation involving multiple stages.
Write or View
MevisLab also provides various methods for writing and viewing the images and 3D models. In this example, the view2d is used for displaying the images.

A network in MevisLab is a combination of such commands as in the example above. Users can create such networks and reuse it for different applications. The software also has many example networks that can clarify the usage of the various methods.

No comments: