BIG > Algorithms > Exponential Hermite Snake |
CONTENTS |
Figure 1. Exponential Hermite Snake at initialization. |
Figure 2. Exponential Hermite Snake after convergence. |
Outline
This software implements an active contour (a.k.a snake) constructed with new exponential B-splines inspired from the cubic Hermite splines. It provides a direct control over the tangents of the parameterized contour, which is absent in traditional spline-based active contours. The new basis functions have been designed to perfectly reproduce elliptical and circular shapes, which makes the model well-suited to outlining blob-like objects.
References
Technical Explanations
We introduce a class of active contours built using a novel kind of exponential B-spline basis functions. The snakes family that stems from them have two main features that make it well-suited to the analysis of bioimages. Firstly, it is built using two complementary basis functions, a construction inspired from Hermite interpolation that grants direct control both on the curve and on its tangent field. Secondly, it has ellipse-reproducing capabilities. Our model actually uses the shortest possible functions that have the Hermite property, satisfy the partition of unity, and reproduce ellipses.
Active contour algorithms consist of two steps. The snake is first initialized by the user, and then the curve is made to evolve on the image through the optimization of a cost functional (or snake energy). In the present example, the snake energy can be tuned to be attracted to edges or ridges.
Software
ImageJ prerequirement
The software provided here is a plugin for ImageJ, a general purpose image-processing and image-analysis package. ImageJ has a public domain licence; it runs on several plateforms: Unix, Linux, Windows, Mac OS 9 and Mac OS X. It doesn't take more than a couple of minutes to install.
Download and install
To install the plugin download the ExpHSnake.jar file and put it in the plugins folder of ImageJ (ImageJ/plugins/). The Exponential Hermite Snake plugin also requires some external libraries that have been regrouped in the following archive file. The archive should be uncompressed, and the elements it contains should be placed into the jars folder of the plugins folder of ImageJ (ImageJ/plugins/jars/).
User manual
Figure 3. ExpHSnake settings window and open image. |
The plug-in requires at least one open image at launch. All image types are accepted, but the processing will be performed on the luminance channel in the case of RGB Color images. In the case of a RGB Stack or a HSB Stack, the processing will be performed on the current channel instead. In the case of 8-bit Color images, the underlying color indices will be treated as intensity value.
At launch, the settings window will appear (see Figure 3). This windows allows one to determine the maximum number of iterations of the snake optimizer, the number of anchor points M, and the standard deviation of the Gaussian blur. The drop-down menus determines the feature to segment (ridges or edges). Two checkboxes determine if the snake is iterated upon convergence, and if the resulting outline is saved in ImageJ's ROI Manager. A quick summary of the input parameters is as follows:
If a ROI is present in the image, the Exponential Hermite Snake will try to use it as a initialization. Otherwise, the snake is initialized as a circle with evenly spaced anchor points in the center of the image.
The Exponential Hermite Snake can then be manipulated thanks to a revised set of tools from ImageJ's toolbar, which we discuss below. ImageJ's toolbar is restored as soon as the Exponential Hermite Snake Snake dies or is killed.
Figure 4. Zooming tool. |
To magnify an image, select the magnification tool and click in the image. To minify an image, use the same tool with the <CNTL> or <ALT> keyboard modifier.
Figure 5. Tool to move points. |
To select a point, click anywhere in the image. The point closest to where you clicked will be highlighted. To move points, drag within the image. The point closest to where you clicked will be moved to the position where you release the mouse. Alternatively, you can use the keyboard arrow keys to get a finer control over the position of the points; for this to work, the image window must be frontmost. The latter manipulations are possible with anchor points on the curve as well as with tangential controls. Note: in any case, it is not possible to interactively move a point outside of the image frame.
To translate the snake all at once, you can also depress the <SHIFT> key before dragging the mouse. Still, a combination of shift and arrow keys will move just one point.
Figure 6. Tool to rescale the curve. |
When this tool is selected, a bounding box appears on the image enclosing the anchor points of the snake. To move the edges of the bounding box, drag them. The curve will be rescaled accordingly to the new bounding box.
To resize the snake all at once, you can also depress the <SHIFT> key before dragging the mouse.
Figure 7. Tool to rotate the curve. |
When this tool is selected, a bounding box appears on the image enclosing the anchor points of the snake. To rotate the bounding box, drag it. The curve will be rotated accordingly to the rotated bounding box.
Figure 8. Tool to launch the optimization. |
The 'play' button (a right-pointing black triangle) is used to start optimizing the snake. The
Figure 9. Available tools during snake optimization. |
The 'stop' button (a black square) is used to manually abort the optimization. If hit, the resulting snake will be returned in the state where it achieved the most favorable configuration so far during the course of optimization. If left to its own devices, the snake will converge to some (possibly local) optimum.
There are two possible ways of leaving the ExpHSnake plug-in and returning to ImageJ:
Figure 11. Tool to leave the ExpHSnake plug-in and adding the ROI to the ROI Manager. |
This tool is used to gracefully return to ImageJ adding the ROI to the ROI Manager if selected in the settings windows.
Figure 12. Tool to leave the ExpHSnake plug-in without adding the ROI to the ROI Manager. |
Like the previous one, this tool is used to return to ImageJ, but without adding the ROI to the ROI Manager.
Conditions of use
You'll be free to use this software for research purposes, but you must not transmit and distribute it without our consent. In addition, you undertake to include a citation to the associated papers whenever you present or publish results that are based on it. EPFL makes no warranties of any kind on this software and shall in no event be liable for damages of any kind in connection with the use and exploitation of this technology.
Related Works
© 2014 EPFL • webmaster.big@epfl.ch • 04.02.2014