[Insight-users] Active contours and edge detection in DICOM
images?
Zachary Pincus
zpincus at stanford.edu
Fri Feb 4 14:33:23 EST 2005
Hello,
ITK should be very well suited for this application.
The short answer is that yes, DICOM images can be read in, and yes, ITK
has very deep and wide support for many level set segmentation methods,
which are a powerful variant of active contours. All of this is
available out-of-the-box, and can be basically "plugged together".
(However, you might need to spend a little time learning how to use the
box! ITK uses a lot of C++'s feature set, including heavy reliance on
generic programming. This can take a day or two to get familiar with if
you've never worked with it before.)
To download and learn about ITK, you should go to the "welcome package"
page at: http://www.itk.org/HTML/Welcome.htm . Download the toolkit,
read some of the manual, and look at the example code provided in the
Insight/Examples directory of the downloaded code. In fact, some of the
example code might be very very close to what you need to do, so you
might be able just to adapt that code.
To answer your questions more specifically:
(1) ITK has the ability to read DICOM files: see
http://www.vtk.org/Wiki/
ITK_FAQ#How_to_read_a_volume_from_a_DICOM_series from the ITK FAQ for a
brief introduction to this topic. If you download the ITK toolkit, you
can look at example DICOM-related code in Insight/Examples/IO.
(2) ITK supports level set segmentation methodologies, which are
similar to traditional "active contour" models. A level set
representation of a contour is not a parametric "node and edge"
representation as in the traditional snakes formulation. Instead, a
contour is embedded as the zero-level set of a real-valued function
defined over the image region. (Imagine a topographical map: the
heights of the function are annotated by the colors on the map, and
isocontours at the same height are hilighted. In the level-set
formulation, the "zero-elevation" contour is taken to represent the
"active contour" of interest.) Then the entire function is manipulated
in such a manner as to encourage the zero-level set to hew to the image
edges. Parameters analogous to the traditional "snake" energy
functional (controlling curve inflation, curve smoothness, and curve
advection to image edges) can be easily defined.
This nonparametric embedding allows for implicit splitting and merging
of growing contours, with none of the nasty bookkeeping and heuristics
inherent in using ordinary snakes.
The various examples on level set image segmentation in the ITK
software manual cover this in much more detail. The
GeodesicActiveContourLevelSetImageFilter class supports analogs of all
of the "traditional" snake parameters, and ITK defines many other
classes more appropriate for one task or another. Trying out simple
examples and working through the manual is strongly recommended.
Hope this helps,
Zach Pincus
Department of Biochemistry and Program in Biomedical Informatics
Stanford University School of Medicine
On Feb 4, 2005, at 3:22 AM, Pål Eilertsen wrote:
> I am currently working on a project where I want to use the active
> contours model (snakes/deformable contours) to find edges/contours
> around a femoral stem using DICOM CT images. Is ITK suited for this
> type of application? Are there functionality that I might use out of
> the box?
More information about the Insight-users
mailing list