Outline of Thesis
For
Comparative Framework Review Of Image
Processing Toolkit
Version 1.0
Table of Contents
Table of Contents.............................................................................................2
1. Introduction ...............................................................................................3
2. Background.................................................................................................. 3
3. Methods for Comparing the Software...........................................................7
4. Reference applications Implementation.......................................................8
5. Results........................................................................................................10
6.Conclusion...................................................................................................12
7.Appendix..................................................................................................... 12
1. Introduction
Image processing is nothing but signal processing, for which the input is either an image
or video and output can be an image, video or set of characterstics from the image. The
typical operations within image processing are,
Computer vision
Face detection
Feature detection
Lane departure warning system
Non-photorealistic rendering
Medical image processing
Microscope image processing
Morphological image processing
Remote sensing
Computer vision basically is concerned with the theory of buidling the systems that
obtain information from images. This information can be used in industrial robots, people
counting, computer human interface. Face detection is recognizing the human face
amidst all the background. This combined with pattern recognition can be used in
security systems. Lane departure system is a safety feature that most OEMs are using in
cars now. This warns the driver of lane departure unless he is turning (turn signal is on).
Non-photorealistic rendering is used in computer graphics for photorealism. Medical
imaging is the technique & processes to create images of human body or parts of human
body. This has found extensive application in clinical studies & diagnisis. Microscope
imaging is digital image processing of images obtained from microscopes. This helps to
read the images from microscope for better understanding of concerns. Remote sensing
is gathering information from a device which is not in physical contact with the object.
Some of the examples are satellite information, earth observation, ultrasound and
Magnetic Resonance Imaging (MRI). There is lot of growth potential for image procesing
and still a lot of software development needs to be done.
2. Background
There are two major open-source toolkits available for image processing & visualization.
They are, ITK (Insight toolkit) and VTK (Visualization toolkit). The VTK provides a wide
variety of visualization algorithms including scalar, vector, tensor, texture, volumetric
methods and advanced modeling techniques such as implicit modeling, polygon
reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation. In addition,
dozens of imaging algorithms have been directly integrated to allow the user to mix 2D
imaging / 3D graphics algorithms and data. On the other hand ITK provides, registration
& segmentation algorithms.
The current comparison study has two criteria and the frameworks are chosen based on
meeting these two criteria.
1. The framework has to be freely available to benefit people of all budgets. This
helps all three categories of professional work areas, which are, Education,
Scientific & Engineering Computation and Commercial product development.
2. The framework has to have available interface to ITK and VTK.
There are five major image processing & visualization softwares available that meet
our requirement. Five softwares are, SCIRun, VolView, MeVisLab, and Medical
Interaction Toolkit (MITK), Matlab. All these are available for free and they all use
ITK C++ library. We are focusing on benefits & limitations of each to help the user
and the application developer in making the decision for using the correct framework
for their application.
SCIRun
SCIRun has integrated development environment (IDE) for visual data-flow programming
that connects a series of data processing modules. SCIRun includes more than 600
modules of varying degrees of complexity for visualization of scalars, tensor fields, 3D +
time, simulation using Finite Element method. It can be interfaced to Matlab, as well as a
number of utility programs that convert data stored in non-SCIRun formats. New
modules can be built with a wizard and can call custom C++ code. SCIRun also allows
one to create a “PowerApp”—an end-user application based on an existing data flow
network, but with fixed module connections and a streamlined workflow.
MeVislab
MeVisLab, the successor of the image-processing environment ILAB4,
represents a platform for image processing research and development with a focus
on medical imaging. Beside general image processing algorithms and visualization
tools, MeVisLab includes advanced medical imaging modules for segmentation,
registration, volumetric and quantitative morphological and functional analysis.
MeVisLab is an IDE for visual data-flow programming with more than 500 modules of
varying degrees of complexity. Modules can be combined into data processing
networks in which image data is processed in pages on an as-needed basis using
priority-controlled page caching. Data can be 3D + time and visualization is based on
Open Inventor scene graphs and provides modules for, 2D transfer functions, iso-
surfaces, slab rendering, MPR, CR, and overlay display of metadata or ROI (Region
of Interest). The framework is designed for integration of custom C++ code and
macro-modules. An end-user application typically for health professionals can be
built based on a network, just as a SCIRun PowerApp. Dynamic functionality can be
added using Java Script.
2.5 Matlab
Matlab image processing toolbox is not just restricted to medical applications. It
includes advance-imaging modules for segmentation, registration, and quantitative
morphology. Matlab image processing toolbox has specialized features for image
deblurring, enhancement, spatial transformation and measuring image features. It
also has filtering, contours, measurements, histograms, animation, and annotation.
Matlab has separate video processing toolbox for 3D+time real-time applications.
Matlab has separate specialized module for image acquisition. Matlab applications
can be integrated with various C/C++, excel, java applications. Standalone
executable can be generated to run matlab applications on non-matlab installed
systems. In matlab image-processing functions can be converted to standard C/C++
library dll files that can be included as normal dll file in any other applications
development for using functions available in dll file. Matlab provides GUIDE that is
used to prepare Graphical user interface for image processing applications.
Uses an interface to verify and steer the mesh deformation process. This
functionality can be used in brain tumor segmentation, as well as segmentation of
cells.
• 3D Sampled data exploration
Implies not knowing which parameters are optimal to visualize the data. Used in
3D ultrasound.
• Interactive Segmentation parameter finding
Displays on a GUI all relevant segmentation parameters for each supported
segmentation filter/algorithm as well as the resulting segmentation output. Used
in MRI scanner.
• Interactive prototyping of research algorithm
Combines previously developed algorithm components in new configurations with
customized parameter settings. Used in removing red eye effect on digital
camera images.
• Analysis of 3D+ Time Volume Data
Imports 4D volume data, processes and visualizes profile curves along time for
each 3D position and creates parametric maps that show classifications of profile
curves.
4.1 SCIRun
Explaining the development and results obtained for the project developed in
SCIRun is shown in Figs. 10, 11, 12, and 13. Project setup includes ITK classes present
in modules. Modules were selected from a context menu and then connected by drag
and drop of visual pipes between TCL/TK GUI components representing the modules.
Each module has its own pop-up GUI to set parameters which required setting for the
application. Figure 10 shows the development environment of SCIRun. Intermediate
results of the program are displayed of original MRI data (gray-scale) overlaid with the
segmentation mask in Figure 11. Figure 12 is one of the intermediate results where
noise and background has to be removed from the spinal cord’s region of interest. Final
results is shown in Figure 13 where just the identified spinal cord is displayed.
4.2 MITK
Explaining the development and result for the project developed in MITIK. Figures.14,
15, 16, and 17. The project setup includes using existing functionality. Here project is
compiled and executed the application after each ITK class was added to the MITK
computation pipeline. The test runs were performed with a single image 2D data set. The
resulting centerline was represented as tubes and spheres at subvoxel accurate
locations in Figure 17. Through the display functionality, the user can set those
properties, such as visibility, color, size of the points or tubes, volume rendering on/off,
and transfer functions.
4.3 Volview
Explaining the development and results for the project developed in VolView are shown
in (Figs 18, and 19). The project setup includes using existing plug-in from ITK classes.
Adding seed points was already an existing feature of VolView. ITK filter are set from the
menu and moving sliders to set the input parameters. Input to the program is 3D data
sets, as VolView is designed for volumes, not for 2D images. Display of the input and
computed data sets was presented automatically as the current result became available
after each interactive step. The final axis of spinal cord is shown in Figure 20.
4.5 MeVislab
Explaining the development and results for the project developed in MeVislab are shown
in Figure. 21, 22, 23, and 24. The project setup included ITK classes strictly complying
with ITK coding style guidelines. Adding seed points was done with a standard
MeVisLab module. Input to the program is 2D data. Module outputs were displayed in
multiple viewers that could be configured to synchronize their view position and
visualization parameters. End-user application which stores parameter defaults for 2D
and 3D was created using Java Script (Figs. 22 and 24).
4.6 Matlab
Explaining the development and result for the project developed in Matlab are shown in
Figure 25,26,27,29. The project includes IDE of video processing block-set as shown in
figure 25, which is used as visual programming tool. This video processing block-set has
integrated ITK and VTK that are the underlying programming language on which the
block-set is built. Input to the program is 2D data as shown in figure 26. Edge detection,
background subtraction is initial preprocessing for the image. Seed points are given as
input that are shown as red dots on figure 27, Axis of spine is shown in figure 28 and
finally spine is reconstructed by meshing as shown in figure 29.
5. Results
Both application developer & application user evaluations are presented.
Framework Features
License
Total 2 5 -3 2 6
Framework Features
GUI Features
Functionalities
Curved Reformations -1 +1 -1 +1 +1
Data Exploration 0 0 +1 0 +1
+1
Total 7 -4 -5 8 18
6.Conclusion
Image processing softwares are crucial for image processing developers as well as
users. There isn’t a specific survey done for developers to choose which image
processing software is best suited for their application. As different mathematical
algorithms applied to images gives different results for same application and accuracy of
results change accordingly. This paper is focused to compare image-processing
softwares such as SCIRun, MeVislab, Matlab, MITK, and VolView. Matlab scored very
high in our comparison tests and we conclude that Matlab image processing toolkit is
better among the five softwares compared. Matlab has all the functionality and its not
restricted to medical application. Matlab image processing can be applied to non-medical
applications as well. Matlab has separate specialized image acquisition toolbox as well
as video processing block-set, which makes it unique as whole computer vision project
can be set up easily.
7.Appendix
1. MITK:
The Functionality Generator is a tool to simplify the process of creating
your own MITK functionality and integrating it into the SampleApp.
Functionality contains the application main widget. The functionality has to set up the
main widget according to its needs when it is activated or reverse the settings when it
is deactivated.
2. SCIRun can also be used as Problem Solving Environment (PSE) for modeling,
simulation and visualization of scientific problems. Each specific PSE, such as BioPSE,
is a package within SCIRun. PSEs use and build upon data types, algorithms, and
modules provided by the SCIRun framework. PSEs provide application specific data
types, algorithms and modules.
ITK-SNAP
A tool for viewing medical images and for delineating and extracting anatomical
structures. ITK-SNAP can be used in two different modes: manual segmentation and
semi-automatic segmentation. The manual mode is used for segmentation using
hand contouring and for cleaning up the results of automatic segmentation. In the
semi-automatic mode, a powerful level set segmentation algorithm is used to
segment anatomical structures in three dimensions. This algorithm requires some
guidance from the user, and ITK-SNAP provides an easy interface to provide such
guidance.
4.
Figure 11. SCIRun: Display of original MRI data (gray-scale) overlaid with the
segmentation mask (brown blend) and overlaid with the distance transform data (red-
green-blue colored grid, voxel values as text, and voxels coordinates as text).
Figure 12. SCIRun: Single slice 2D input data, seed points, spinal cord segmentation,
and centerline on single view.
Figure 13. SCIRun: 3D spinal cord data, seed points, segmentation, and
centerline, as well as object browser, 1D volume rendering transfer
function editor, and color map selector.
Figure 14. MITK: Single Slice 2D input data, seed points, spinal cord,
segmentation, and centerline on single view.
Figure 16. MITK: 3D data, seed points, two centerlines, large 3D view
Figure 17. MITK: Fig. 7 data and layout with curved reformation and plane
Figure 18. VolView: Speed image, four-quadrant view, and GUI panel for appearance
(transfer function editors).
Figure 19. VolView: Segmentation views of the spinal cord segmentation with the
smoothed MRI, appearance GUI.
Figure 21. MeVisLab: Data-flow network and sub-network, the selected crop module is
highlighted and configured to automatically display input and output images and image
meta-information.
Figure 22. MeVisLab: Single Slice 2D input data, spinal cord segmentation, and
centerline, correlated 2D views in customized application.
Figure 23. MeVisLab: GUI parameters edit boxes and multiple viewers for 2D data,
spinal cord segmentation, and centerline.