Interface:


Image and Display manipulation:

Our program takes images of the forms ppm, pgm and tga. To open an image one simply clicks on the image toolbar and selects the image from your directory. Resizing and saving are also built into the environment.

The Display parameters allow the user to view and place snake points on pictures of the original, gray scale or edge images. Clicking on the tangent or normal buttons display normalized tangents or normals to the spline points and are used in the minimizing algorithm. During the minimization algorithm distances between sample points along the spline and the closest edge are calculated. The "walks" button displays these distances as they are being calculated and minimized. The "Control points" button displays the points used to calculate the B-Spline curves and "Knots" displays the endpoints of the spline segments.

Snake options:

The user has the option of using either the greedy snake algorithm or the b-spline and can compare efficiency and accuracy of the two. Once a snake has been drawn by placing control points or loading a previously saved contour one can also erase or save the contour.

Point Controls:

Our interface allows the user to specify point spacing as well as continuity, curvature and edge weights (alpha, beta, gamma) when using the linear greedy algorithm. Point spacing specifies the distance in pixels between snake control points as the user is drawing their initial contour. Continuity, curvature and edge weights specify the relative weights of each energy parameter for the greedy algorithm, but are not used in the B-Spline algorithm since the B-Spline accounts for continuity and curvature internally and another method is used for edge fitting.

Snake Controls:

The Neighborhood button allows the user to choose the size of the neighborhood within which a control point can move during each iteration. A neighborhood value of n would specify a (2n+1)x(2n+1) neighborhood centered on the control point under consideration. Stopping Threshold refers to the minimum percentage of control points allowable to declare the snake done and stop the minimization. For example, if stopping threshold is set to 10, the minimization will stop when less than 10% of the control points have moved during the current iteration. The Curvature Threshold and Edge Threshold options control the thresholds for the greedy algorithm corner detection. If the edge value is greater than the edge threshold and curvature is a local maxima and greater than the curvature threshold it is declared a corner and beta is set to 0 in the next iteration.

Canny Controls:

The threshold and sigma sliders allow the user to specify the parameters for the Canny Edge Detector, sigma being the size of smoothing kernel and threshold the minimal value of the gradient magnitude for declaring a pixel an edge pixel. Thinning allows the user to thin the edges to one pixel width.