14
1 Méthodes et Algorithmes Graphiques Florent Lafarge 2 But Donner une structure mathématique afin que vous puissiez: Comprendre la littérature. Utiliser ces méthodes pour: Mettre vos idées en place. Bien poser les problèmes. Donner des algorithmes flexibles: Pour que vous compreniez les possibilités de ces techniques. Que vous puissiez les incorporer dans des solutions plus complètes. 3 Motivation Beaucoup de problèmes en traitement d’image peuvent être exprimés ainsi : Trouver une structure linéique avec telles ou telles propriétés. Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. Exemples: Extraction de réseaux routiers. Extraction de zones urbaines. 4 Exemples 5 Motivation Les graphes image sont une représentation discrète de la géométrie de l’image. Les problèmes précédents être formulés sur des graphes définis à partir de l’image: Trouver un chemin (de poids minimum) dans un graphe. Trouver un cycle (de poids (ratio) minimum) dans un graphe. 6 Plan du cours Graphes et graphes image Fonctions sur les graphes Problèmes graphiques et algorithmes I Chemins de poids minimum Fonctions sur les graphes image Problème image: détection des réseaux routiers. ------------------- Problèmes graphiques et algorithmes II Cycles divers Problèmes graphiques et algorithmes III Cycle de poids rationnel minimum Problème image: détection d’objets.

But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

Embed Size (px)

Citation preview

Page 1: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

1

Méthodes et Algorithmes

Graphiques

Florent Lafarge

2

But

Donner une structure mathématique afin que

vous puissiez:

Comprendre la littérature.

Utiliser ces méthodes pour:

Mettre vos idées en place.

Bien poser les problèmes.

Donner des algorithmes flexibles:

Pour que vous compreniez les possibilités de ces

techniques.

Que vous puissiez les incorporer dans des

solutions plus complètes.

3

Motivation

Beaucoup de problèmes en traitement

d’image peuvent être exprimés ainsi :

Trouver une structure linéique avec telles ou

telles propriétés.

Trouver une région ou son contour (i.e. bord)

avec telles ou telles propriétés.

Exemples:

Extraction de réseaux routiers.

Extraction de zones urbaines.

4

Exemples

5

Motivation

Les graphes image sont une représentation

discrète de la géométrie de l’image.

Les problèmes précédents être formulés sur

des graphes définis à partir de l’image:

Trouver un chemin (de poids minimum) dans un

graphe.

Trouver un cycle (de poids (ratio) minimum) dans

un graphe.

6

Plan du cours

Graphes et graphes image

Fonctions sur les graphes

Problèmes graphiques et algorithmes I Chemins de poids minimum

Fonctions sur les graphes image

Problème image: détection des réseaux routiers.

-------------------

Problèmes graphiques et algorithmes II Cycles divers

Problèmes graphiques et algorithmes III Cycle de poids rationnel minimum

Problème image: détection d’objets.

Page 2: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

2

Graphes et graphes image

8

Graphes orientés: intuition

On peut imaginer un graphe orienté en termes de sommets (cercles verts) et d’arcs (flèches noires): On peut avoir des

sommets isolés (7).

On peut avoir des boucles (g).

On peut avoir plus d’un arc entre deux sommets(h,i).

1

5

6

7

2

43

ab

cd

f

g

e

hi

9

Graphes orientés

Un graphe consiste

en deux ensembles E

(arcs) et V (sommets)

et deux applications

s (source) et b (but)

de E à V:

On peut penser à une

seule application de E à V £ V:

s(e) e b(e)

1 a 4

2 b 1

4 c 2

3 d 2

3 e 4

3 f 1

6 g 6

h 5 s bE V V

s

b

E V

10

Types de graphes

S’il y a plus d’un arc entre deux sommets, on a un multigraphe (s £ b pas injective).

Sinon (s £ b est injective), on peut identifier E

avec un sous-ensemble de V £ V.

Si il n’y a pas de boucle, on a un graphe

simple.

Si on a tous les arcs possibles (E = V £ V), le

graphe est complet (s £ b surjective).

Nous utiliserons le mot graphe pour les non-

multigraphes simples.

11

Graphe symétrique

Pour chaque arc e, il y a un autre arc (e-1)

entre les mêmes sommets mais avec

l’orientation inverse.

8 e 2 E. 9 ! e-1 2 E t.q. s £ b(e-1) = b £ s(e).

12

Connectivité

Un graphe n’est pas

connecté si les sommets

se divisent en deux

parties, sans un arc entre

les deux.

On parle de graphes

connectés dans le cours.

Page 3: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

3

13

Sous-graphes

Un sous-graphe H = (U, D) d’un graphe G =

(V, E) est un sous-ensemble des sommets U ½ V, et un sous-ensemble des arcs entre

eux: D ½ E (U £ U).

H

G

14

Graphes spéciaux: chemins et

cycles

Un chemin est une séquence d’arcs:

{ei}i 2 [1..n], t.q.

b(ei) = s(ei + 1) pour i 2 [1..(n – 1)].

Un cycle est un chemin avec b(en) = s(e1).

On dit qu’un graphe contient un chemin ou

un cycle s’il a un sous-graphe qui est un

chemin ou un cycle.

15

Simplicité

Graphe acyclique (GA):

Un graphe qui ne contient pas un sous-graphe qui

soit un cycle.

Chemin simple:

Un chemin qui ne contient pas un sous-graphe qui

soit un cycle.

Cycle simple:

Un cycle qui ne contient pas un sous-graphe

propre qui soit un cycle.

16

Graphes image

V est l’ensemble des pixels.

Deux graphes symétriques:

Vert: G = (E, V).

Rouge: G = (E, V).

Il existe une bijection ¤: E

$ E.

Rotation positive de p/2.

¤¤e = e-1.

=

17

Exemples Image

=

18

Et maintenant?

On cherche un chemin ou un cycle dans un

des deux graphes image.

Mais comment le sélectionner?

On définit une fonction (poids) qui donne

une valeur pour chaque chemin ou chaque

cycle dans le graphe.

On cherche le chemin ou le cycle avec le poids

minimum.

Comment construire une telle fonction?

Page 4: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

4

Fonctions sur les graphes

20

Fonctions sommet et arc

Sommets:

Pour chaque sommet v, on a une valeur (un

poids) f(v).

Arcs:

Pour chaque arc e, on a une valeur (un poids)

f(e).

On peut définir la dérivée d’une fonction

sommet, qui est un fonction arc:

(df)(e) = f(b(e)) – f(s(e)).

21

Fonctions spéciales

On peut définir des fonctions

Positives: f(u) > 0.

Entières: f(u) 2 Z.

Binaires: f(u) 2 {0,1}. (Sous-ensemble de U.)

Soit g et h deux fonctions, h positive.

On définit une fonction rationelle g/h(u) =

g(u)/h(u).

22

Fonctions symétriques

Rappel qu’un graphe symétrique a pour

chaque arc e, un arc e-1.

Pour les fonctions arc, on définit:

l-1(e) = l(e-1).

On définit les fonctions symétriques:

l= l-1

On définit les fonctions antisymétriques:

l= -l-1 l(e) = 2

l(e-1) = §2

23

Fonctions sur ensembles

Etant donné une fonction sommet ou

arc, on peut définir une fonction sur

sous-ensembles de V ou E par

sommation. E.g.:

U ½ V;

f(U) = v 2 U f(v).

Noter que df(c) = 0 si c est un cycle.

24

Cycles négatifs

Une fonction arc l a un cycle négatif si le

graphe contient un cycle c t.q. l(c) < 0.

Les cycles négatifs jouent un rôle

important dans la suite du cours.

Page 5: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

5

25

Exemple

Une fonction f sur V.

Une fonction g sur E.

Dans ce cas, g = df.4.0

2.5

-9.2

-2.1

-13.21.5

11.7 4.6

6.1

-7.1

26

Et maintenant?

On a vu comment définir des fonctions sur

les chemins et les cycles.

Comment trouver le chemin ou cycle avec le

poids minimum?

Problèmes graphiques et

algorithmes

28

Problèmes

Chemins de poids minimum.

Cycle de poids minimum.

Détection de cycles négatifs.

Cycle de poids rationnel minimum.

29

Généralités

On suppose:

Un graphe G = (E, V).

C est le sous-ensemble de cycles dans G.

Deux fonctions arc, l et t.

t est positive. t n’est pas toujours utilisé.

On peut supposer que l et t sont entiers.

Problèmes graphiques et

algorithmes I

Chemins de poids minimum

Page 6: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

6

31

Chemins de poids minimum

Problème:

Trouver le chemin qui a le poids minimum de l

parmi les chemins qui passent entre un sommet s

et un sommet t.

Différents Cas:

G contient un cycle négatif.

G ne contient aucun cycle négatif. 1 6

4

12

1

2

t

s

32

Différents cas

Cycle négatif Pas de cycle négatif

Chemin l ¸ 0 : impossible. GA.

Par

défaut,

on trouve

un

chemin

simple.

l ¸ 0. l général.

Mal définil général.

Chemin

simple

l général.

NP-complet

GA.

l ¸ 0.l ¸ 0 : impossible.

l général.

33

Notations, Init et Relax

A la fin de chaque algorithme:

d: V ! R sera le poids du chemin de poids

minimum (valeur minimal de l) entre s et v.

r: V ! V est le prédécesseur de chaque sommet

dans le chemin de poids minimum.

Init(d, s)

d(s) = 0; 8 v 2 Vn{s}: d(v) = 1;

Relax(e, d, r, l)

Si d(b(e)) > d(s(e)) + l(e)

d(b(e)) = d(s(e)) + l(e)

r(b(e)) = s(e)

34

l ¸ 0: algorithme de Dijkstra

Dijkstra(G, s, l)

Init(d, s)

Q = V

Tant que Q ;

u = arg minv 2 Q {d(v)}

Q = Qn{u}

Pour e 2 s-1(u)

Relax(e, d, r, l)

Complexité: O(E log(V)).

35

Iterations

s 0

a

b

c

d

e

f

g

t

Détaillez dans la table ci-dessous (ou

d’une façon claire) l’exécution de

l’algorithme de Dijkstra en partant du

sommet s. Pour chaque itération et pour

chaque sommet, notez son poids et son

prédécesseur courants. L’initialisation

vous est donnée. Quel est le poids du

chemin de poids minimum entre s et t ?

s

a

b

c

d

e

f

g t

1

5

36

5

2

3

12

4

4

11 1

Algo de Dijkstra: un exemple

36

l général: algorithme de

Bellman/Ford

BellmanFord(G, s, l)

Init(d, s)

Pour n 2 {1,…,(jVj – 1)}

Q = V

Tant que Q ;

u = arb(Q);

Q = Qn{u}

Pour e 2 s-1(u)

Relax(e, d, r, l)

Complexité: O(VE).

Page 7: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

7

37

Commentaire

Noter que si l’on veut calculer la distance

entre un sommet et un sous-ensemble des

autres sommets l’algorithme de Dijkstra

peut être arrêté au point où les sommets

sont selectionnés.

38

Et maintenant?

Etant donné la fonction arc l, on peut

trouver le chemin de poids minimum.

Mais étant donné une image, comment

construire cette fonction?

Une image est une fonction sur les sommets

rouges, l’intensité.

Le résultat de l’application d’un filtre (e.g. qui

mesure une texture) est une fonction sommet

rouge.

Fonctions sur les graphes image

40

Graphes image

Deux graphes symétriques:

Vert: G = (E, V).

Rouge: G = (E, V).

V est l’ensemble des pixels.

Il existe une bijection ¤: E

$ E.

Rotation positive de p/2.

¤¤e = e-1.

=

41

Fonctions simples

Etant donné une fonction f sur les sommets rouges, on peut définir une fonction g sur les arcs rouges: g(e) = h(f(s(e)), f(b(e))).

Deux exemples: Somme: h(x, y) = x + y.

Fonction symétrique.

« L’intégrale » de f le long d’un chemin.

Différence: h(x, y) = x – y. h = df.

Fonction antisymétrique.

Pas très utile: si c est un cycle, alors df(c) = 0.

42

Fonctions duales

Etant donné une fonction f sur les arcs rouges, on peut definir une fonction ¤f sur les arcs verts (et

vice-versa):

¤f(e) = f(¤e).

Donc, étant donné une fonction f sur les sommets rouges, on peut définir une fonction ¤df sur les

arcs verts.

Pour un cycle c:

¤df(c) = e 2 c [f(b(¤e)) – f(s(¤e))].

Donc le flux du gradient de f à travers c.

Dérivée: elle décrit les changements de f.

Propriété de bord.

Page 8: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

8

43

Fonction arc ) fonction sommet

Etant donné une fonction arc vert (rouge) f

antisymétrique, définir la dérivée df comme

la fonction sommet rouge (vert):

df(v) = e 2 c(v) f(e)

Où c(v) est le cycle autour de v (choix

d’orientation).

Théorème de Stokes/Green:

Pour un cycle c: f(c) = v 2 Int(c) df(v).

44

Fonction sommet ) fonction arc

Pour chaque fonction sommet rouge (vert),

on peut trouver une fonction arc vert (rouge)

antisymétrique Af t.q.

dAf = f

Alors, on a v 2 Int(c) f(v) = Af(c).

Donc on peut calculer « l’intégrale » de f sur

une région, mais en utilisant les arcs.

Intégrale: elle décrit la masse de f.

Propriété de région.

45

Résumé: fonctions arc

antisymétriques

Trois façons pour créer une fonction arc

antisymétrique à partir d’une fonction

sommet rouge:

f a df.

Pas très utile: si c est un cycle, alors df(c) = 0.

f a df a ¤df.

Dérivée: elle décrit les changements de f.

Propriété de bord.

f a Af.

Intégrale sur une région: elle décrit la masse de f.

Propriété de région.

46

Résumé: fonctions arc

symétriques

Trois façons pour créer une fonction arc

symétrique:

Directement:

8 e 2 E. t(e) = 1.

8 e 2 E. t(e) = la longueur géométrique de e = l(e).

À partir d’une fonction sommet rouge, en

utilisant une fonction h symétrique.

« L’intégrale » de f le long d’un chemin.

À partir de l, fonction arc antisymétrique:

On définit t = jlj par jlj(e) = j(l(e))j.

Exemple j¤dfj: gradient sans orientation.

Problème image

48

Modélisation

On veut trouver une structure linéique ou

une région dans une image qui correspond à

un objet.

Il faut construire des fonctions arc (rouge ou

vert) qui incorpore:

Notre connaissance a priori des propriétés de

l’objet.

La relation entre l’objet et l’image.

Page 9: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

9

49

Commentaires

Ces exemples sont illustratifs. Ils ne sont pas

les solutions complètes aux problèmes

mentionnés. Pourquoi?

Les solutions complètes n’existent pas.

E.g. l’extraction des réseaux routiers est encore un

sujet actuel de recherche (problème ouvert).

Il vaut mieux expliquer comment on peut

appliquer ces techniques que de donner des

méthodes toutes faites.

Chaque problème est différent et il faut penser au

problème spécifique.

50

Réseaux routiers

Un réseau routier est composé de linéiques, donc:

Utiliser les chemins de poids minimum et l’algorithme de

Dijkstra.

On voudrait une chaîne de pixels:

On va utiliser le graphe rouge.

On doit définir:

Un fonction arc symétrique et positive l.

Deux types de modélisation:

Géométrie a priori.

Attache aux données.

On va construire l = klG + lA, (k2 R+).

51

Géométrie a priori

La possibilité la plus simple est:

lG = l, la longueur géométrique.

Donc, sans lA:

Le chemin de poids minimum entre deux

sommets est donc le chemin le plus court.

52

Attache aux données

Soit f une fonction sommet rouge, l’intensité

des pixels.

Les chemins sont souvent clairs et ont une

radiométrie homogène.

Donc, on peut essayer:

lA(e) = exp[-a(f(b(e)) + f(s(e))], a 2 R+.

53

Initialisation

Pour utiliser l’algorithme

de Dijkstra, il faut s.

On ne veut pas les chemins

de s à tous les autres

sommets:

Juste aux sommets qui font

partie d’un chemin.

Choisir les intersections des

routes avec le bord de

l’image.

54

Résultat réel

Page 10: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

10

55

0.9 0.8 0.8 1

0.1 0.3 0.2 0.8

0.9 0.9 0.4 0.2

0.8 0.8 0.8 0

Exemple: extraction de

réseaux linéiques

56

Exemple: extraction de

réseaux linéiques0.9 0.8 0.8 1

0.1 0.3 0.1 0.8

0.9 0.9 0.4 0.1

0.8 0.8 0.8 0

S

B

1/Proposer un modèle par graphe avec une fonction

de cout prenant en compte a la fois la géométrie et

la radiométrie de l’image

2/ trouver le chemin de poids minimum de ce

modèle

Problèmes graphiques et

algorithmes II

Cycles divers

58

Cycle de poids minimum

Cycle négatif Pas de cycle

négatif

Cycle l ¸ 0 : impossible. l ¸ 0.

Trivial. Par

défaut,

on trouve

un cycle

simple,

mais

trivial.

l général.

Mal défini

l général.

ld = l - dd

Cycle

simple

l général.

NP-complet

l ¸ 0.

Trivial.

l ¸ 0 : impossible. l général.

ld = l - dd

59

Détection de cycles:

algorithme

Cycle(G) Pour v 2 V

Si M(v) = 0

DFS (v)

DFS(v) – depth-first search – recherche par profondeur d’abord M(v) = 1;

Pour u 2 b(s-1(v))

Si M(u) = 0

r(u) = v

DFS(u)

Si M(u) = 1

r(u) = v

Rend u (cycle détecté)

M(v) = 2

60

Détection de cycles négatifs:

algorithme

CycNeg(G, l)

s = arb(V)

d = BellmanFord(G, s)

Pour e 2 E

u = s(e)

v = b(e)

Si d(v) > d(u) + l(e) (ou dd(e) > l(e))

Il y a un cycle négatif.

Page 11: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

11

61

Détection de cycles zéro.

d(v) · d(u) + l(hu, vi).

Donc ld(hu, vi) = l(hu, vi) - dd(hu, vi) est

positive.

Pour un cycle c:

ld(c) = l(c) parce que df(c) = 0 pour toutes

fonctions sommet f et tous cycles.

Donc, l(c) = 0 ) ld(e) = 0 8 e 2 c.

62

Cycles zéro: algorithme

ZeroCyc(G, l)

s = arb(V)

d = BellmanFord(G, s, l)

E0 = {e 2 E : ld(e) = 0}

G0 = (E0, b(E0) [ s(E0))

c = Cycle(G0)

Problèmes graphiques et

algorithmes III

Cycle de poids rationnel minimum

64

Cycle de poids rationnel

minimum

Problème:

Trouver arg minc 2 C l/t(c).

Ce problème ne presente pas les difficultés

rencontrées avec le cycle de poids minimum.

Dans les applications, il y a aussi des

propriétés théoriques intéressantes.

65

Cycle négatif Pas de cycle

négatif

Cycle l ¸ 0 : impossible. l ¸ 0.

G, l sym: trivial. Par

défaut,

on trouve

un cycle

simple.

l général Par

défaut,

on trouve

un cycle

simple.

l général.

ld = l - dd

Cycle

simple

l général l ¸ 0.

G, l sym: trivial.

l ¸ 0 : impossible. l général.

ld = l - dd

Cycle de poids rationnel

minimum

66

Commentaires

Pas de restriction sur l:

l peut avoir des cycles négatifs.

On trouve toujours un cycle simple.

Pour les graphes symétriques, l

antisymétrique, t symétrique:

arg minc 2 C l/t(c) = arg maxc 2 C jl/t(c)j.

Donc l’algorithme maximise jl/tj.

Page 12: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

12

67

Lemmes

On définit une fonction arc paramétrisée lb = l - bt.

Lemme: Soit b¤ t.q. minc 2 C lb¤(c) = 0 et soit c¤ un

cycle minimisant lb¤(c¤) = 0, alors b¤ = minc 2 C l/t(c)

et l/t(c¤) = b¤.

lb(c) = 0 ) l/t(c) = b.

Supposons b¤ minc 2 C l/t(c), alors 9 c t.q. l/t(c) < b¤ )

lb¤(c) < 0. Contradiction parce que minc 2 C lb¤(c) = 0.

Lemme: Soit b¤ = minc 2 C l/t(c) et soit c¤ un cycle

minimisant, alors minc 2 C lb¤(c) = 0 et lb¤(c¤) = 0.

lb(c) = 0 ( l/t(c) = b.

Supposons minc 2 C lb¤(c) 0, alors 9 c t.q. lb¤(c) < 0 )

l/t(c) < b¤. Contradiction parce que b¤ = minc 2 C l/t(c).

68

Nouveau problème

Donc le problème devient: comment trouver

b¤ t.q. minc 2 C lb¤(c) = 0, puis comment

trouver un cycle de poids zéro.

Noter:

lmin = mine 2 E l(e) · b¤ · maxe 2 E l(e) = lmax

9 c 2 C. lb(c) < 0 ) minc 2 C lb(c) < 0 ) b > b¤

lb(c) < 0 ) b¤ · l/t(c) < b

l/t(c) l/t(c0) ) j l/t(c) - l/t(c0) j ¸ (Etmax)-2

69

Cycle de poids rationnel

minimum: algorithme

CyclePRM(G, l, t)

b = maxe 2 E l(e)

Tant que c = CycNeg(G, lb)

b = l/t(c)

b¤ = b

c¤ = ZeroCyc(G, lb¤)

70

Et maintenant?

Etant donné les fonctions arc l et t, on peut

trouver le cycle de poids rationnel minimum.

Mais étant donné une image, comment

construire ces fonctions?

Une image est une fonction sur les sommets

rouges, l’intensité.

Le résultat de l’application d’un filtre (e.g. qui

mesure une texture) est une fonction sommet

rouge.

Problème image

72

Bord d’une région

Le bord d’une région est un cycle: Utiliser le cycle de poids rationnel

minimum.

On voudrait le bord d’une région: On va utiliser le graphe vert.

On doit définir: Un fonction arc antisymétrique l.

Un fonction arc symétrique etpositive t.

Rappel: l’algorithme essaye de maximiser jl/tj.

Page 13: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

13

73

Modèle simple 1.

Soit f une fonction sommet rouge, l’intensité des

pixels.

Donc l = ¤df mesure la somme des valeurs du

gradient orienté sur le bord.

Soit t = l, la longueur géométrique.

l/t mesure la densité du gradient sur le bord.

L’algorithme va la maximiser.

Point positif: invariant à l’échelle. Par contre, l dépend de la longueur du bord.

Point négatif: les bords qui ont un gradient qui

s’inverse.

74

Modèle simple 2

Soit f une fonction sommet rouge ´ 1.

l = Af mesure l’aire de la région.

Soit g une fonction sommet rouge, l’intensité

des pixels.

t = 1/j¤dgj mesure la somme des valeurs

inverses du gradient non-orienté sur le bord.

Donc, jl/tj est grand quand:

L’aire est grande.

Les gradients sont identiques et grands.

75

Resultat synthétique

1. Un bord pour lequel le gradient s’inverse.

2. Résultat avec modèle 1.

3. Résultat avec modèle 2.

(2)(1) (3)

76

Résultat réel

Cratère Lunaire: JPL

Fin

78

GA: ordre topologique

On peut définir un ordre Á des sommets t.q. si u Áv, il n’existe aucun chemin de v à u.

OT(G) Pour v 2 V

Si M(v) = 0

OTT(v, T)

OTT(v, T) M(v) = 1;

T = T + 1;

Pour u 2 b(s-1(v))

Si M(u) = 0

OTT(u, T)

T = T + 1

F(v) = T

On a:

M: V! {0,1}.

F: V! Z+

L’ordre est: u Á v ,

F(v) < F(u).

L’ordre n’est pas

unique.

Complexité: O(E).

Page 14: But Méthodes et Algorithmes Graphiques · Trouver une région ou son contour (i.e. bord) avec telles ou telles propriétés. ... propre qui soit un cycle. 16 Graphes image ... Comment

14

79

GA: algorithme

CPMGA(G, s, l)

Init(d, s)

Q = V

Tant que Q ;

u = minÁ Q;

Q = Qn {u}

Pour e 2 s-1(u)

Relax(e, d, r, l)

Complexité: O(E).