12.08.2013 Views

Chapter 4 Vortex detection - Computer Graphics and Visualization

Chapter 4 Vortex detection - Computer Graphics and Visualization

Chapter 4 Vortex detection - Computer Graphics and Visualization

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Chapter</strong> 2. Geometry extraction techniques<br />

where Ú × Ü × Ý × are the positions of the snake elements as a function of the<br />

curve parameter ×, ÒØ is the internal spline energy, Ñ is the image energy which<br />

causes a snake to be attracted to images features, <strong>and</strong> ÓÒ is the constraint energy<br />

imposed by the user.<br />

The internal energy ÒØ, which controls the continuity of a snake, is defined as a<br />

weighted average: ÒØ « × Ú× × ¬ × Ú×× × . It consists of a first-order<br />

derivative term Ú× × <strong>and</strong> a second-order derivative term Ú×× × . The first term makes<br />

the snake first-order continuous, the second makes it second-order continuous, with<br />

« × <strong>and</strong> ¬ × determining the weight of each term. If ¬ × , the snake is secondorder<br />

discontinuous.<br />

The image energy Ñ causes the snake to be attracted to lines, edges, <strong>and</strong><br />

(line segment) terminations, <strong>and</strong> is also defined as a weighted average: Ñ <br />

ÛÐÒÐÒ Û ÛØÖÑØÖÑ.<br />

The last term of the snake energy, the constraint energy ÓÒ, allows the user to<br />

fix certain points of a snake to the background, or to connect two points of adjacent<br />

snakes to each other with a spring. If two points have coordinates Ü <strong>and</strong> Ü , then<br />

a spring between those two points could add a term Ü Ü to the constraint<br />

energy, where is the stiffness of the spring.<br />

When all the energy terms have been defined <strong>and</strong> substituted in the total energy<br />

(2.1), the energy is minimized by a variational calculus approach. This basically means<br />

that new snake positions are calculated as small variations of the old ones, such that<br />

the energy gradually decreases at each iteration, <strong>and</strong> ultimately is minimized. This<br />

will cause an initial snake defined around an object to shrink <strong>and</strong> lock onto the actual<br />

object contour.<br />

The snakes article has been the basis for numerous other types of deformable<br />

curves. One further development were the fast active contours described in [Williams<br />

& Shah, 1990]. There are several differences with the original snakes. One difference<br />

is that the calculations are not done in continuous Ê space, but on a discrete grid of<br />

pixels, which makes sense for image processing applications. Another difference with<br />

the original snakes is the use of a greedy algorithm to compute new positions of snake<br />

elements. For each of the neighbour pixels of a snake element, the greedy algorithm<br />

calculates the effect of moving that element to that pixel on the new energy of the entire<br />

contour. The algorithm then moves each element to the neighbour pixel which leads<br />

to the lowest energy. One of the advantages of the greedy algorithm is that it works<br />

much faster than variational calculus.<br />

Yet another type of deformable curves is the Discrete Dynamic Contours described in<br />

[Lobregt & Viergever, 1995]. Like previous models, they are based on minimization of<br />

an energy, composed of external energy related to image features, <strong>and</strong> internal energy<br />

related to local curvature. In this case, the energy is not minimized by variational<br />

calculus or a greedy algorithm, but by means of forces, which are used in Newtonian<br />

motion equations to determine the new positions of the nodes. The force on a node <br />

is given by:<br />

ÛÜ ÜÖ ÛÒ Ò ÑÔ (2.2)<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!