Package snake2D
Interface Snake2D
public interface Snake2D
This interface encapsulates the number-crunching aspect of snakes.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondouble
energy()
The purpose of this method is to compute the energy of the snake.The purpose of this method is to compute the gradient of the snake energy with respect to the snake-defining nodes.getNodes()
This method provides an accessor to the snake-defining nodes.The purpose of this method is to detemine what to draw on screen, given the current configuration of nodes.void
setNodes
(Snake2DNode[] node) This method provides a mutator to the snake-defining nodes.
-
Method Details
-
energy
double energy()The purpose of this method is to compute the energy of the snake. This energy is usually made of three additive terms: 1) the image energy, which gives the driving force associated to the data; 2) the internal energy, which favors smoothness of the snake; and 3) the constraint energy, which incorporates a priori knowledge. This method is called repeatedly during the optimization of the snake. It is imperative that this function be everywhere differentiable with respect to the snake-defining nodes.- Returns:
- Return a number that should attain a minimal value when the snake is optimal. Negative values are admissible.
-
getEnergyGradient
Point2D.Double[] getEnergyGradient()The purpose of this method is to compute the gradient of the snake energy with respect to the snake-defining nodes. This method is called repeatedly during the optimization of the snake. The optimization takes place under the control of the methodSnake2DKeeper.interactAndOtimize()
.- Returns:
- Return an array that contains the gradient values associated
to each node. They predict the variation of the energy for a
horizontal or vertical displacement of one pixel. The ordering of the
nodes must follow that of
getNodes()
. Ifnull
is returned, the optimizer within the classSnake2DKeeper
will attempt to estimate the gradient by a finite-difference approach. - See Also:
-
getNodes
Snake2DNode[] getNodes()This method provides an accessor to the snake-defining nodes.- Returns:
- Return an array of subpixel node locations. It is expected that the ordering of the nodes and the number of nodes does not change during the lifetime of the snake.
- See Also:
-
getScales
Snake2DScale[] getScales()The purpose of this method is to detemine what to draw on screen, given the current configuration of nodes. This method is called repeatedly during the user interaction provided by the methodSnake2DKeeper.interactAndOptimize()
. The origin of coordinates lies at the top-left corner of thedisplay
parameter. Collectively, the array of scales forms the skin of the snake.- Returns:
- Return an array of
Snake2DScale
objects. Straight lines will be drawn between the apices of each polygon, in the specified color. It is not necessary to maintain a constant number of polygons in the array, or a constant number of apices in a given polygon. - See Also:
-
setNodes
This method provides a mutator to the snake-defining nodes. It will be called repeatedly by the methodSnake2DKeeper.interactAndOptimize()
.- Parameters:
node
- Array of subpixel node locations.- See Also:
-