Plusieurs
approches de résolution existent afin de minimiser la fonctionnelle
d’énergie : l’approche variationnelle, la méthode
de programmation dynamique et l’algorithme glouton (greedy).
L’approche variationnelle
Il s’agit de l’implémentation
la plus courante.
La méthode variationnelle consiste à résoudre les
équations d'Euler associées à la fonctionnelle
qui sont des équations aux dérivées partielles.
L'énergie à minimiser est :
Cela revient à chercher la solution de l'équation d'Euler
associée (car un minimum vérifie l'équation d''Euler)
:

(1)
avec 
Remarque
: Cette éuation peut avoir plusieurs solutions
car elle a plusieurs minima locaux.
Il faut ensuite discrétiser la courbe en réduisant les
éléments de la courbe en points auxquels sont rattachées
les forces externes et d'images de la courbe considérées
en ces points.
Les dérivées figurant dans l'équation (1) sont
alors remplacées par les différences
finies c'est à dire des approximations.
On associee cette implémentation à une équation
d'évolution temporelle. La position à l’itération
t est calculée en fonction des forces liées à l’image
et de la position t-1.
Le processus d'évolution s'arrête lorsque la différence
entre deux itérations est très petite.
Programmation dynamique (Amini)
Cette méthode, introduite par Amini est une
implémentation classique de résolution de problème
d’optimisation.
Amini considère l’équation :
Après discrétisation, il convient que :
Le terme d’énergie interne est composé du terme du
1er degré et du terme du second degré. Après la discrétisation,
cette énergie interne met en jeu
un élément du contour,
l’élément précédent et l’élément
suivant. On a donc :
Avec :
Ceci nous ramène à un problème d'optimisation d'une
fonction numérique de plusieurs variables. Il suffit de minimiser
l’expression précédente pour obtenir à chaque
itération le contour optimal.
Algorithme glouton (Greedy Snake Algorithm)
Cet algorithme itératif a été mis au point par
Williams et Shah.
A chaque étape, pour chaque point du snake vi, on cherche
le point dans le voisinage ayant la plus petite
énergie. Si l’énergie calculée est
inférieure à l’énergie du point vi,
ce point est alors choisi comme nouveau point du snake et remplace le
précèdent. Sinon le point vi n’est pas modifié.
On répète ce mécanisme jusqu’à convergence
c'est-à-dire lorsque le contour à l’étape
n est identique à celui obtenu à l’étape
n - 1.
Remarque : Pour que la méthode fonctionne,
il faut s’assurer que les points sont suffisamment espacés
: si deux points sont trop proches l’un de l’autre, ils
auront tendance à converger vers le même point et la courbe
s’écrasera.