[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