Parametric Snakes in Microscopy

Snakes are effective tools for image segmentation. Within a 2D image, a snake is a 1D curve that evolves from an initial position, which is usually specified by a user, toward the boundary of an object. Within a 3D image, a snake is represented by a 2D surface. In the literature, these methods are also known as active contours or active surfaces. The snake evolution is formulated as a minimization problem. The associated cost function is called a snake energy. Snakes have become popular because it is possible for the user to interact with them, not only when specifying their initial position, but also during the segmentation process. This is often achieved by allowing the user to specify anchor points the curve or surface should go through. We have developed a JAVA framework for the design of 2D and 3D snakes that are parameterized by a set of control points compatible with ImageJ and ICY. It provides fast 2D and 3D filters for image preprocessing, several snake energies, different snake topologies (e.g., spherical and tubular in 3D), and efficient optimization routines. We have also designed a dedicated user interface for ICY that features numerous possibilities for user interaction through a mouse-based manipulation of control points in synchronized 2D and 3D views. Highquality data rendering is performed thanks to VTK. Moreover, the snake surface can be overlaid to the original data during the optimization process. Stereo rendering is provided in order to make the visualization of the 3D objects more effective.