is an open source
and portable software for 3D digital image segmentation
and visualization. It was developed as graduation thesis
of Systems Engineering at Universidad Nacional del
Centro de la Provincia de Buenos Aires (UNCPBA),
located in Argentina .
this work the most effective segmentation methods were studied and
implemented, with the purpose of algorithm comparation in terms
of performance and quality. Also, a new region-growing method was
proposed (VoxelGrow) which performed very well, and in some cases,
the results were better compared to the other models, in terms of
results quality. A selection of the methods were implemented in
the form of a friendly and interactive software tool, which can
serve as a visualization system, and can assist in the digital exploration
of the original 3D image. Finally, this software tool was used with
real 3D images (CT,MRI) showing very good results.
main purpose of
3D image segmentation and visualization.
principal features can be resumed in the following items:
various 3D images in multiple formats, in a slice per file or volume
per file manner. The supported formats up to now are: Structured
Points (vtk), BMP, JPEG, PNG, GIF, TIFF, GeSigna (Human Project), RAW
(telling all the loading parameters). It's
planned the support in DICOM format (help will be appreciated).
Visualize and interact
with 3D images and surfaces trying to address real time data exploration.
This item is carried out with VTK
, a powerful visualization framework.
You can Apply filters
to images and surfaces. The filters forms a "mini-pipeline"
in the main application pipeline, so the order of them can be exchanged,
and their action can be undone. This filters are implemented in TCL,
so new filters in execution time can be defined and applied without
You can apply different
segmentation algorithms. Also, their parameters can be varied. Up to
now, the implemented methods are:VoxelGrow (our proposed
segmentation method), FastMarching (Level Sets). Its
planned to bind every ITK
segmentation method in the future.
In the following picture,
there are some screenshots thumbnails(click to see in real-size):
In this picture, you can see 3D image visualization
In this picture, the filter interface is showed.
In this picture, you can see how surfaces are
In addition to this
functional objectives, the software was designed to be flexible in terms
of the functionality that provides, without loss in terms of response-time
(interactivity). So, it's possible to define new segmentation methods
and define new image/surface processing filters in a very easy way (it's
designed totally using Object Oriented techniques).
designed to satisfy the following requirements:
The soft must provide
an interactive visualization 3D environment. This requirement is accomplished
with VTK visualization framework.
The soft must provide
an uniform interface to accomplish 3D image segmentation, without
mattering about the segmentation Method. This requirement is accomplished
using Object Oriented techniques and implementing the software with
The soft must
provide an user friendly interface (GUI). FLTK
was used for GUI construction.
The soft must have
an acceptable response time for algorithm execution, and for visualization
tasks. C++ and VTK was the solution.
The soft must be
potable between different platforms. To accomplish this requirement,
we implemented the soft in ANSI-C++, and using a portable configuration
management scheme like CMake. Also,
data structures were programmed using STL (Standard Template Library).
The software is based
on a Pipes & Filters architecture. The 3D images enters the pipeline
on the left side, and by applying successive data transformations throughout
the pipeline, a surface is obtained. The next is the main pipeline implemented: