Vous êtes sur la page 1sur 18

Nous avons vu que la théorie des ondelettes appliquée à la multi-résolution en 2D se basait sur 3

éléments :

- Des fonctions d’échelles, représentées par des fonctions ‘chapeau’.


- Un produit scalaire permettant de définir la notion de base orthogonale.
- Des fonctions d’ondelettes, formant une base orthogonale avec les fonctions d’échelles d’un
niveau plus grossier.

Très vite, nous avons observé que:


- Les fonctions d’échelles sont devenues des ‘intervalles d’observation’ à l’image des carrés
d’échelle ou des cubes d’échelle.
- Le produit scalaire qui reste encore présent dans les matrices utilisées pour l’algorithme de
Lounsbery montre surtout le côté très mathématique de cette méthode. Le produit scalaire est plus
difficile à dénicher dans les beamlets, par exemple, qui est une méthode beaucoup plus pratique. A
vrai dire, il n’y est pas utile puisque la solution est directement orthogonale.
- Les fonctions d’ondelettes sont assimilées aux coefficients de détail, alors qu’en réalité ces
coefficients sont multipliés aux fonctions d’ondelettes. Finalement, ce sera la notion de ‘capture de
l’approximation’ qui sera conservée.

Ainsi, l’utilisation de la méthode dans la pratique va aboutir à la résumer par un passage entre
deux niveaux de détail avec conservation des modifications apportées.
Le treelet, tel qu’il sera défini dans la partie suivante, conservera la méthode dans son aspect
pratique. En effet, un coefficient d’échelle définira si telle ou telle distance (liée à une arête) devra
être traitée ou non. Dans le cas où elle est traitée, le résultat obtenu sera ajouté à l’arbre. Ainsi, il
sera toujours possible d’aller dans le cas du niveau de détail précédent ou suivant, par une simple
comparaison entre un coefficient de niveau de détail lié au nœud considéré et le niveau de détail
recherché.
Le résultat sera donc une structure arborescente où l’on pourra explorer tous les niveaux de détail
sans calcul, mais juste avec le parcours de l’arbre et une comparaison à chaque nœud atteint (dans
la recherche, sélective, tous les nœuds ne seront pas forcément explorés). Nous sommes donc bien
dans le cas de la multi-résolution et dans le cadre de la théorie des ondelettes, dans son aspect
pratique à l’image des beamlets ou autres wedgelets.

3.3.2.3) Du cube d’échelle à la sphère d’échelle

On observe une évolution logique du principe d’échelle dans l’application des ondelettes à la 1D,
puis la 2D et enfin la 3D. On passe d’intervalles d’échelle, à des carrés d’échelles, puis on parle de
cube d’échelle. On retrouve donc un même principe d’étalon, variant avec les niveaux de détails
recherchés, qui sera adapté aux axes référents des dimensions concernées : l’intervalle d’échelle en
1D (axe des x), le carré d’échelle en 2D (les axes x et y) et enfin le cube d’échelle en 3D (les axes
x, y et z). Or, on peut y voir là une manifestation de la volonté de transmettre ‘ce qui marchait’
dans la 1D à la 2D et ‘ce qui marchait’ dans la 2D vers la 3D. Cependant, nous posons la question
de savoir : est-ce qu’il est nécessaire d’avoir un référent d’échelle à 3 dimensions dans la 3D ?
Exemples de carré d’échelle, de cube d’échelle,
de disque d’échelle (treelet appliqué à la 2D) et de sphère d’échelle
C’est pourquoi nous avons préféré utiliser la notion de
distance pour pouvoir y appliquer la notion d’échelle.
Cette distance étant la distance entre deux points, à la
condition qu’ils soient reliés par une arête. Ainsi, nous ne
nous empêtrons pas dans un référentiel de cube d’échelle
à trois dimensions, mais nous considérons plutôt une
sphère d’échelle à une seule dimension (qui peut être vue comme un seul coefficient en
coordonnées sphériques, mais surtout une simple comparaison avec un seul coefficient d’échelle).
Ainsi, nous allons simplement comparer des distances entre elles, soit un seul coefficient. En fait,
nous comparerons plutôt les carrés des distances, offrant ainsi des valeurs positives mais aussi
entières ou avec peu de chiffres après la virgule, pour ne pas nous embêter avec les racines carrées
et les chiffres loin après la virgule.

L’approche d’Agnieska Lisowska avec les beamlets étendues dans [13] permettait, dans la 2D, de
supprimer pratiquement tous les problèmes de transition entre les carrés d’échelle. Passer les
beamlets en 3D, c’est ramener ce problème de transitions disgracieuses au volume. Dans le cas de
beamlets étendues appliquées à la 3D et utilisant des surfaces courbes (par extension à la 3D des
segments changés en portion de courbes) il est également probable que ce problème de transition
réapparaisse.
L’avantage du treelet est l’absence de transition entre cubes, et de toutes les aberrations possibles
lors de cette transition. Sa seule faiblesse consistera lors d’un remplacement de deux points brisant
une particularité de l’objet (nous le verrons plus loin et établirons un ‘remède’).

Les valeurs des distances d’échelles (des rayons successifs de la sphère d’échelle), peuvent être
prises arbitrairement dans la progression que l’on souhaite, comme l’on peut diviser un carré
d’échelle deux par deux ou trois par trois, etc. Néanmoins, il est préférable dans un premier temps
de rester dans le cadre d’une progression dyadique (de type 2p) récurrente dans les ondelettes, afin
d’avoir ainsi une possibilité de comparaison des résultats avec d’autres méthodes utilisant les
ondelettes.

Notre choix s’est donc fixé sur des valeurs dyadique, c'est-à-dire des valeurs suivant la progression
2n, avec n allant de 0 jusqu’à ce qu’il n’y ait plus qu’un seul point pour représenter l’objet (point
qui n’aura donc aucune arête).
Ensuite, dans un soucis de clarté et pour ne pas avoir à gérer des nombres trop complexes, nous
prendrons en fait le carré de la distance. Ainsi, nous n’aurons pas à gérer la racine carrée du calcul
de la distance entre deux points (obtenue à cause de l’utilisation du théorème de Pythagore pour
trouver cette distance).

3.3.2.4) Les coefficients de détail du Treelet

Les coefficients de détail du treelet seront appelés les coefficients d’échelle. Ces coefficients sont
attribués à chaque point, dès leur création. Lors de la création de l’arbre, les points d’origine

1
correspondant aux feuilles de l’arbre et représentation de l’objet considéré au niveau 0, niveau le
plus fin possible, recevront la valeur 0. Ensuite, à chaque création de nouveau point, il sera affublé
d’un coefficient d’échelle égal au niveau de détail auquel il est créé.
Ce coefficient d’échelle correspond bien au coefficient de détail, puisque c’est grâce à lui que l’on
sélectionnera ou pas le point dans l’affichage du niveau de détail recherché. C’est par sa valeur
que l’on peut passer d’un niveau de détail au niveau de détail suivant (on continue à descendre
ou on reste sur ce point), ce qui est la définition même du coefficient de détail.

3.3.2.5) Une représentation du Treelet

3.3.2.5.1) Un algorithme du Treelet

Le principe de base du treelet consiste à regarder, à chaque construction d’un niveau de détail, si
deux points reliés par une arête ont une distance inférieure ou égale à la distance d’échelle
considérée pour le niveau d’échelle recherché. Si c’est le cas, alors on créé un nouveau point, le
barycentre des points reliés par une arête entre eux et dont la distance est inférieure ou égale à la
distance d’échelle, et on va créer de nouvelles arêtes entre ce barycentre et les points ayant une
arête avec les points donnant le barycentre. Il s’agit en fait d’une compression d’arête entre les
points de distance inférieure ou égale à la distance d’échelle, mais sans supprimer les points
concernés. On ajoute juste un nouveau point et de nouvelles arêtes, mais ce nouveau point verra
son coefficient d’échelle initialisé à la valeur du niveau de détail où il vient d’être créé.
Ensuite, la représentation de l’objet concerné au niveau de détail voulu n’aura lieu que dans la
lecture de l’arbre en fonction du coefficient d’échelle de chaque point. Tant que le coefficient
d’échelle du point est supérieur au niveau de détail cherché, alors on poursuit le parcours plus en
profondeur dans l’arbre. Ensuite, il ne reste qu’à récupérer les arêtes entres les points ainsi
sélectionnés.
Deux exemples sont nécessaires pour observer l’algorithme du treelet. Un premier concernant la
structure informatique des deux arbres imbriqués, et un deuxième pour avoir un rendu du résultat
de l’algorithme sur l’objet considéré.

3.3.2.5.2) Représentation du treelet

3.3.2.5.2.1) Représenter le treelet

Dans la philosophie de la méthodologie des ondelettes, le treelet est un arbre qui doit permettre à
la fois de retrouver la hiérarchie des niveaux de détails et de conserver l’information permettant de
retrouver les points et les arêtes correspondants à chaque niveau de détail.

Pour représenter la hiérarchie des niveaux de détails, nous utiliserons un arbre.


En premier lieu, l’idéal est de représenter chaque
niveau de détail à chaque hauteur de cet arbre.

Ainsi, nous aurions un arbre du style :

2
Mais la redondance d’informations, est alors évidente. Nous allons alors mettre en place le
coefficient de détail. Ce coefficient a pour fonction de permettre de déterminer la variation entre
les niveaux de détails, tout en permettant de conserver l’information aidant à retrouver les
informations adéquates pour chaque niveau de détail. Ce coefficient sera donné dans l’algorithme à
chaque point lors de sa création, et avec pour valeur celle du niveau de détail où l’algorithme en
est alors.
L’arbre devient donc :

Ainsi, on peut constater que les feuilles, créées en premier lieu ont toutes le coefficient de détail
(ou coefficient d’échelle) égal à 0. Il est donc facile de deviner que pour choisir un niveau de
détail, par exemple 2, alors il suffit de restreindre la lecture de l’arbre à la lecture d’un arbre de
taille inférieure ou égale au treelet. Au niveau algorithmique, partant de la racine, on explorera une
branche tant que le coefficient de détail du nœud où l’on se trouve strictement supérieur. Dans le
cas contraire, on arrête l’exploration là et le point correspondant au nœud est un point de l’objet
au niveau de détail recherché.

Par exemple, on obtient pour une recherche d’un niveau de


détail = 2 l’arbre ci-contre:
On sait donc que le polygone de niveau de détail 2 sera
constitué des points A, B, J, E et K.
Reste maintenant à en déterminer les arêtes.
Pour cela, nous allons complexifier l’arbre et y entrelacer les
relations d’arête entre chaque point.
Ainsi, pour l’arbre précédent, si l’on tient compte des arêtes
[A,B], [B,C], [C,D], [D,E], [E,F], [F,G] et [G,A], on obtient
alors (en colorant les arêtes en vert):

Mais il ne faut pas oublier non plus que dans la création des niveaux de détail, c’est à dire des
nouveaux points I, J, K et L, on créé également des arêtes entre ces points et les points qu’ils
‘remplacent’.
Ce qui donne donc à partir de l’arbre précédent
(avec les nouvelles arêtes en rouge):

Tout d’abord, on constate que les 4 points A,


B, J et L sont reliés. Ce niveau de détail le plus
grossier forme donc un polygone.
On voit ainsi que tous les niveaux de détail
forment des polygones.

Le point L permet de mettre en évidence la

3
particularité de la création des nouvelles arêtes : ce point n’est en effet pas relié à D qui a pourtant
toujours une arête avec le point E. En fait, chaque création de nouvelle arête ne s’établit que sur
des points encore en ‘activité’, c’est à dire considéré dans le niveau de détail où l’on est alors.
Lorsque l’on créé le point L, on est alors dans le 3e niveau de détail et sa construction repose sur
le 2e niveau de détail, donc en, considérant le point J et non les points C et D. Ceci est la seule
particularité de ces créations d’arêtes, qui doivent, pour ne pas se perdre dans les niveaux de
détail, avoir lieu, chacune respectivement, lors de la création des niveaux de détails les concernant.

Un treelet est donc l’imbrication d’un arbre de points structurés par les niveaux de détails avec un
réseau d’arêtes, dont aucune ne sera jamais effacée pour pouvoir ensuite être
récupérée lorsque l’on passe au niveau de détail les concernant.

Un autre type de représentation pourrait être:

Autrement dit, avec tous les niveaux détail imbriqués.


Sa représentation peut faire un peu brouillon. Cependant, ce dernier exemple
montre que le treelet représente bien l’objet : est l’objet et tous ses niveaux de détail à la fois, que
l’objet soit 2D ou 3D.

3.3.2.5.2.2) Coder le treelet

Le treelet va utiliser les 5 structures principales:

*) Un enregistrement ‘point’, correspondant à un point, avec pour champs :


- les 3 coordonnées (entières) du point (X, Y et Z)
- le coefficient d’échelle du point (CE), un entier. On pourrait aussi l’appeler le coefficient de
détail : c’est lui permettra de définir à partir de quel niveau d’échelle le point est pris en compte ou
pas.

4
- un pointeur vers un enregistrement Liste_arête. Ce pointeur correspond en fait au premier
maillon d’une liste chaînée contenant les arêtes en relation avec le point considéré, de coordonnées
X, Y et Z.
- un pointeur vers un enregistrement point. Ce pointeur va servir dans la construction de l’arbre.
On va considérer qu’à chaque nouvelle demande de représentation on parcourt à nouveau l’arbre
depuis la racine.

*) Un enregistrement ‘arête’, correspondant à une arête, avec pour champs :


- un entier Distance, représentant le carré de la distance entre les points. C’est cette valeur qui va
être comparée avec la distance d’échelle.
- deux pointeurs vers un enregistrement point, correspondant à chacune des extrémités de
l’arête.

Ainsi, une arête entre le point A et le point B sera représentée par :

L’enregistrement arête ne sert qu’à éviter de recalculer à chaque fois la distance. Sans cela, on ne
relierait que les deux points entre eux par un double chaînage et on effectuerait le calcul de la
distance à chaque fois. A vrai dire, les deux variantes sont possibles et dépendent de l’approche,
selon que l’on veuille privilégier le temps de calcul des distances (effectué une seule fois pour la
création du treelet) ou la capacité de stockage des arêtes.

Exemple de plusieurs arêtes partant du point A (ici [A,B] et [A,C]):

*) L’enregistrement ‘Liste_arête’ est une substitution à un tableau d’arêtes. Comme on ne sait


pas le nombre de nouvelles arêtes qui vont être créées dans la construction du treelet, une liste
chaînée est préférée à un tableau. Dans le cas, par exemple, d’une limitation dans le nombre
d’arêtes on pourra alors utiliser un tableau.

5
*) L’enregistrement ‘point_fils’ est, tout comme l’enregistrement Liste_arête, fait pour créer un
tableau dynamique. Il permet de pointer vers le fils d’un point de l’arbre. Un pointeur réciproque
indiquant le père est inutile.

*) L’enregistrement ‘Racine’, est en fait un enregistrement point_fils. Cet enregistrement


correspond à la racine de l’arbre des points (le treelet).

3.3.2.5.3) Exemple représentant l’évolution de l’objet considéré

Soit l’objet considéré : le polygone ABCDEFGH.


L’algorithme ne possède comme données de départ que les coordonnées
des points des couples de points représentant les arêtes.
Il va, dans un premier temps, construire un arbre de base initialisé avec
une racine et tous les points en feuilles de cette racine.
Parallèlement, il va calculer les distances correspondant aux arêtes.

L’algorithme parcoure les arêtes et compare les distances à


la distance d’échelle. Ce que fait l’algorithme est représenté
dans le schéma de droite : il présente la distance d’échelle
(en rouge) à chacune des arêtes.

Cependant, le schéma de gauche, qui représente exactement


la même chose, utilise la signalétique que nous utiliserons par la suite : le disque d’échelle, est
centré sur chaque point du polygone. Le rayon du disque étant égal à la distance d’échelle, si l’un
de ces disques contient deux points, alors ces points devront être fusionnés.
Le schéma montre les disques d’échelle, en gris, appliqués aux points.
A cette première itération, aucune distance n’est inférieure ou égale à la distance d’échelle.

2eme itération :
Le schéma indique que le point G est inclus dans le disque d’échelle
de H, et donc, forcément, le point H est inclus dans le disque
d’échelle de G.
Cela met en évidence le fait que l’arête HG est inférieure ou égale à
la distance d’échelle.

L’algorithme va alors créer un nouveau point, I, le barycentre des 2


points concernés : les deux extrémités de l’arête sélectionnée (de
distance inférieure à la distance d’échelle, en rouge sur le schéma).

6
Ensuite, il va relier les arêtes liées aux deux points concernés (en vert
sur le schéma) avec ce nouveau point I.

L’arbre va placer le point I en nœud père des points H et G. Créé à la


2e itération, son coefficient d’échelle sera donc égal à 2.
Ainsi, lors de la lecture de l’arbre pour une recherche d’un niveau de
détail de hauteur 2, le résultat sera l’objet en noir sur le schéma.
Les arêtes en bleu existent toujours, mais ne sont accessibles que par
une lecture de l’arbre d’un niveau de détail de hauteur 0 ou 1.
Ainsi les itérations suivantes procèderont de même. Il est à noter que si
l’algorithme rencontre plus de 2 points dans un disque d’échelle, tous
les points ainsi repérés seront fusionnés en un seul. A chaque fois, la
nouvelle comparaison de distances s’effectue sur le résultat du niveau
détail précédent. Ainsi, la 3e itération aura lieu sur le tracé noir du
schéma de la 2e itération.

3e itération (le résultat de la visualisation du 3e niveau de détail est


donné par le trait noir):

Les points C et D sont repérés. Le point J est créé et les arêtes en vert sont créées.

4e itération :
Les points I et F sont repérés. Le point K est créé avec les arêtes en vert.
Le résultat de la visualisation du 4e niveau de détail est donné par le trait noir.

7
5e itération :
Les points E et K sont repérés. Le tracé
final de l’itération est en noir.

Enfin, la 6e et dernière itération :


Les 4 points A, B, J et L sont repérés.
L’algorithme les fusionne donc. Puisque
aucun point (du tracé noir) n’a d’arrête
avec ces 4 points, ils sont donc fusionnés
en 1 point qui sera la racine et la
représentation du 6e niveau de détail : un
point non relié à aucune arête. C’est la
condition d’arrêt de l’algorithme.

3.3.2.5.4) Exemple représentant l’évolution de la structure arborescente

Reprenons le même polygone ABCDEFGH utilisé dans l’exemple précédent.


Nous allons voir l’évolution de la construction du treelet, avec en bleu les relations d’arborescence
(relatives aux niveaux de détails), et en vert les relations d’arêtes (relatives à la notion de distance
d’échelle). Dans les deux cas, bleu ou vert, la couleur foncée montre l’état initial de la construction
et la couleur claire les liens nouveaux.

Etat initial : tous les points sont


mis sous la racine et les arêtes sont
mises en place dans
l’arborescence.

La première itération ne change rien dans


l’arbre.
La deuxième itération amène la création du
point I :

8
Ensuite, nous voyons apparaître les points J, K.

Et enfin L, avec la forme finale du treelet.

3.3.2.5.5) Comparaison Treelet / Beamlet

3.3.2.5.5.1) Exemple 1 : mise en évidence d’une pondération amélioratrice

9
Comparaison entre les beamlets et le treelet sur 4 itérations avec l’objet de l’exemple précédent :

Beamlets :

Treelet :

A priori, les beamlets semblent plus intéressants au niveau de détail le plus grossier: ils conservent
l’aspect de l’objet jusqu’à la fin (y compris à la 4e itération). Cela dit, le treelet reste intéressant et
finalement assez proche des beamlets. Il a la particularité de raidir les courbes et donc, pour un
exemple comme celui-ci avec un objet composé de lignes droites, on voit qu’il est intéressant.
Notamment dans les 2e et 3e itérations : où les beamlets ont tendance à mettre une courbure là où
il n’y en a pas. Au niveau du codage et de la quantité d’information, le treelet me semble le plus
compact : outre la première itération qui n’a finalement rien changé (distance d’échelle encore trop
petite), la seconde itération tient en un arbre de 10 points et 10 arêtes. A ces itérations, qui
correspondent aux dernières itérations des beamlets, le nombre de carrés d’échelle est plus
important.
La rectitude du treelet s’explique aussi par le fait que l’on supprime peu à peu des points tout en
essayant de garder un maximum les arêtes et les points d’origine. Les beamlets, vont au contraire
chercher à interpoler tout ce qui dépasse du carré d’échelle. D’où cet aspect arrondi observé.

Cet exemple met en évidence le fait que la pondération en localité d’un point dans sa prise en
compte par le disque d’échelle peut s’avérer utile (la perte de forme de la 4e itération). Mettre un
signe négatif au coefficient de détail pour indiquer qu’il ne faut pas toucher à ce point, même s’il
est dans un disque d’échelle, pourrait permettre de conserver les aspects d’un objet. Le choix des
points à ‘verrouiller’, se ferait en fonction de l’angle entre deux arêtes en un point. Inférieur à une
certaine valeur (angles aigus) ou supérieur à une autre (angle aigu, mais ‘de l’autre coté’ de
l’angle), il verrait son coefficient d’échelle passer négatif. Pour que cela puisse s’appliquer dès les
points d’origine, il faudrait commencer les niveaux de détail à 1. Ainsi, on ajouterait 1 au
coefficient de détail à chaque passage, et un coefficient de -4 ne serait alors pris en compte
qu’après 5 passages (-4, -3, -2, -1 et 0), de -2 au 3e passage etc. Avec l’importance de la
pondération dépendant linéairement de l’étroitesse de l’angle.

10
3.3.2.5.5.2) Exemple 2: mise en évidence d’une possible amélioration par contrôle du nombre de points
fusionné

Comparaison entre les beamlets et le treelet sur l’image représentant la lettre


a. Pour pouvoir appliquer le treelet, l’image de la lettre a été modélisée en
objet 2D :

On obtient alors les résultats suivants avec le treelet :

Cercle d’échelle correspondant : Résultat de la comparaison Forme résultante :


distance d’échelle / arêtes :

itération 1

itération 2

itération 3

itération 4

itération 5

itération 6

Dans cet exemple, les disques d’échelle ont leur diamètre multiplié par 2 à chaque itération.

11
Et en comparaison treelet / beamlets :

On constate que les deux méthodes ont une itération à partir de laquelle on passe d’un objet
reconnaissable à un objet non reconnaissable : 3e itération pour les beamlets (en haut) et la 4e
itération pour le treelet (en bas). Il ne s’agit donc pas d’une faiblesse du treelet : il s’agit
simplement de la mise en évidence que le modèle de l’objet 2D représentant la lettre ‘a’ a
beaucoup de points placés à des distances quasi-identique, à la variation de la fonction d’échelle
prêt. Ce cas est facilement identifiable pendant l’algorithme du treelet, et peut être rectifié en
réajustant les fonctions d’échelles à cette étape. Une autre version de l’algorithme pourrait utiliser
le tri des distances pour s’en servir pour calibrer les distances d’échelle. Ainsi, on pourrait
demander les X niveaux de détails possible d’un objet en étant sûr qu’il y aurait une variation entre
chaque changement, plutôt qu’avec les autres algorithmes tournant automatiquement, sans
chercher à calibrer les fonctions d’échelle.

3.3.2.5.5.3) Conclusion sur les deux exemples

Dans sa forme la plus basique : sans étalonnage du disque d’échelle en fonction des distances
présentes, et sans pondération de points importants, le treelet n’est pas ridicule devant la
comparaison avec les beamlets, (l’un des meilleurs algorithmes de multi-compression 2D étudié au
travers des articles cités en bibliographie). Même si la compression de chaque niveau semble plus
régulière dans les 2 exemples, la version améliorée du treelet devrait être particulièrement
prometteuse. Car son atout supplémentaire réside dans le passage d’un niveau de détail à l’autre,
qui ne consiste qu’à une lecture d’un arbre de taille raisonnable par rapport au nombre de points et
d’arêtes fourni en données, avec juste des comparaisons et sans aucun calcul.
Quant à la version améliorée, elle ne consistera qu’à quelques calculs supplémentaires afin
d’étalonner les distances d’échelle, puis ensuite ne se déroulera encore que par la lecture de
l’arbre. Je pense qu’à travers ces deux exemples nous avons surtout mis en évidence la non
pertinence du choix de progression dyadique des fonctions d’échelles dans la méthode des
ondelettes appliquée à la multi-résolution. Cependant, le fait est que les beamlets, par exemple,
fonctionnent par progression de type exponentielle (de type Cx avec x variant et C constant), alors

12
que le treelet à la possiblité de choisir chacune des distances d’échelle, et peut donc s’adapter à
tout problème ou toute configuration de points en utilisant également, par exemple, la pondération
des points.

3.3.2.5.6) Construction du Treelet

La construction de base du treelet est simplement obtenue en reliant tous les points obtenus de
l’objet considéré à la racine. L’ordre importe peu, puisque l’algorithme va parcourir tous les points
puis choisir ou non des points en fonction de la distance des arêtes dont ils sont une extrémité.
Sont aussi mises en place les arêtes.
En cours d’algorithme, celui-ci va lire le treelet au niveau de détail où il en est, et regarder si au
moins une des distances de toutes les arêtes des points concernés par le niveau de détail est
inférieure ou égale à la distance d’échelle correspondante au niveau de détail. A la condition que
cette arête appartienne au niveau de détail, c’est à dire que ses deux extrémités soient accessibles
par la lecture du niveau de détail.
S’il n’y a rien à faire, alors le niveau de détail est mis à jour pour passer à la prochaine itération (si
une des conditions de fin n’est pas établie : la création d’un niveau de détail à un seul point, ou de
plusieurs points mais avec aucun ne possédant d’arête vers l’un des autres), de même que la
distance d’échelle.

Il est à remarquer qu’en allant jusqu’à un niveau de détail représenté par un point, on peut alors
comptabiliser les différentes composantes non connexes par arête, présentes dans l’objet.

De plus, ne tenant compte que d’une distance entre deux points, le treelet fonctionne aussi bien en
2D qu’en 3D, et ce sans modifications fondamentales. Les exemples présentés furent en 2D par
souci de visualisation et facilité de comparaison.

3.3.2.5.7) Lecture du Treelet

On ‘descend’ chaque branche de l’arbre jusqu’à ce que l’on trouve un point avec un coefficient
d’échelle inférieur ou égal au niveau de détail recherché. Une fois que l’on a les points, on a les
arêtes, grâce aux structures employées.
On remarque donc que l’obtention d’un niveau de détail se fait donc par le parcours d’un arbre
avec un seul test de supériorité à effectuer à chaque nœud. Il n’y a plus le moindre produit de
matrice ou calcul, et une fois que l’on tombe sur un nœud satisfaisant, on n’a pas à aller parcourir
le reste de la branche. La capacité à retrouver un niveau de détail est alors beaucoup plus rapide.

13
Bibliographies des sources citées:

- [1]: The Wavelet Tutorial by Robi Polikar. Part I & Part IV.
http://users.rowan.edu/~polikar/WAVELETS/WTPart1.html
http://users.rowan.edu/~polikar/WAVELETS/WTPart4.html

- [2] : Wavelets for Computer Graphics: A Primer; E. J. Stollnitz, T. D. DeRose, D. H. Salesin


(Septembre 1994).

- [3] : Wavelet transform maxima and multiscale edges; S. Mallat, S. Zhong

- [4] : http://www.image-etc.com/faq/wavelet/Index.htm

- [5] : PROJET Traitement Numérique des images, Projet nº 19 : Bases d'ondelettes ; Kristina
Bouchitte, Souad Guemghar, Olivier Magneau, Julie Vandenbussche, Marylène Warthmann.
http://www.tsi.enst.fr/tsi/enseignement/ressources/mti/ondelettes/exp.htm

- [6] : TIPE mathématique compression d'image par ondelettes; Rémi Pauchet, Damien Velleman
http://www.chez.com/rpauchet/lapageTIPE/TIPEixl/TIPEondelettes/TIPEhtml/Tipe%20maths%2
099%20compression%20par%20ondelettes.html

- [7] : Une introduction (élémentaire) à la théorie des ondelettes; Lucas Quarta; Cahier
pédagogique #2, Institut de Mathématique Université de Mons-Hainaut, 22 novembre 2001

- [8] : http://www.cmi.univ-mrs.fr/~torresan/universalis/ondel.html

- [9] : http://membres.lycos.fr/tleilaxus/ondelettes/lenna.html

- [10] : Compression d'images et ondelettes, une double approche contours et textures; J.


Froment, S. Mallat

- [11] : Edgelets & Wedgelets, software & applications; David Donoho, Xiaoming Huo; KDI
Meeting 10/99

- [12] : Extended wedgelets – geometrical wavelets in efficient image coding; Agnieszka Lisowska

- [13] : Bent Beamlets – Efficient tool in image coding; Agnieszka Lisowska

- [14] : Intrinsic Dimensional Selective Operator Based on Geometrical Wavelets; Agnieszka


Lisowska

- [15] : Multiresolution Analysis for Surfaces of Arbitrary Topological Type ; John M. Lounsbery
(1994)

14
- [16] : Décomposition en ondelettes de maillages triangulaires 3D irrégulièrement subdivisés.
Application à la compression; Sébastien Valette, Fabien Thibon, Yun-Sang Kim, Ho-Youl Jung,
Isabelle Magnin, Rémy Prost

- [17] : Ten lectures on wavelets; Ingrid Daubechies (SIAM, Philadelphia, 1992)

- [18] : Multiresolution Analysis of Arbitrary Meshes; Eck, Rose, Duchamp, Hoppe, Lounsbery &
Stuetzle

- [19] : Interactive Multiresolution Surface Viewing; Certain, Popoviæ, De Rose, Duchamp,


Salesin, et Stuetzle (1996)

- [20] : Multiresolution representation of implicit objects; Laurent Grisoni, Christophe Schlick


(1998)

- [21] : Sparse geometric image representation with bandelet; S. Mallat, E. LePennec

- [22] : Curvelets and curvilinear integrals; E. Candès, D. Donoho (2001)

- [23] : The contourlet transform: an efficient directional multiresolution image representation; M.


N. Do, M. Vetterli

- [24] : Wedgelets: nearly-minimax estimation of edges; D. Donoho (1999)

- [25] : Multiscale wedgelet image analysis: fast decompositions and modelling; J. K. Romberg, M.
Wakin, R. Baraniuk (2002)

15
Additif à la bibliographie des sources non citées:

Sites et adresses Internet:


http://www.wavelet.org
http://users.rowan.edu/~polikar/WAVELETS/WTtutorial.html
http://perso.wanadoo.fr/polyvalens/clemens/wavelets/wavelets.html
http://www.chez.com/rpauchet/lapageTIPE/TIPEixl/TIPEondelettes/TIPEhtml/Tipe%20maths%2
099%20compression%20par%20ondelettes.html
http://homepages.cwi.nl/~henkh/publications.htm
http://www.thepolygoners.com/tutorials/dwavelet/DWTTut.html
http://www.techniques-ingenieur.fr/affichage/DispIntro.asp?ngcmID=R309
http://www.lyoba.ch/lagruyere/article123.htm
http://www.crm.umontreal.ca/math2000/pub/imagerie.html
http://www.ruses.com/Pages/0001000G.htm
http://www.hta-bi.bfh.ch/~bgw/pwf/fach1/f.html
http://nikopol0.alrj.org/biblio/index.php?selected_categ=ondelettes
http://www.tsi.enst.fr/tsi/enseignement/ressources/mti/donoho/intro.html
http://cm.bell-labs.com/who/wim/papers/#lifting

Plus axés théorie:


http://membres.lycos.fr/tleilaxus/ondelettes/theorie.html
http://tel.ccsd.cnrs.fr/documents/archives0/00/00/51/40/

Thèses:
- http://tel.ccsd.cnrs.fr/documents/archives0/00/00/51/40/tel-00005140-00/tel-00005140.pdf
ONDELETTES ET APPLICATIONS EN IMAGERIE ET EN CALCUL DE SURFACES; Jules
WAKU KOUOMOU (4 Novembre 1993, UNIVERSITE Joseph FOURIER - GRENOBLE 1)

- Analyse multifractale 2D et 3D à l'aide de la transformation en ondelettes : application en


mammographie et en turbulence développée ; Pierre Kestener (21 novembre 2003, UNIVERSITE
BORDEAUX I)

- Modèles de maillages déformables 2D et multirésolution surfaciques 3D sur une base


d'ondelettes ; Sébastien VALETTE (7 Janvier 2002, INSTITUT NATIONAL DES SCIENCES
APPLIQUEES DE LYON)

Jpeg 2000:
http://www.univ-orleans.fr/ESPEO/LESI/personnel/ravier/enseignement/cetsis_01_Ravier.pdf

Forum:
http://www.ondelette.com/

Images:
http://209.132.69.82/gallery/gallery.html?antropus1.jhtml&1#detail
http://www.c3.lanl.gov/~brislawn/JPEG_demo/sld006.htm

16
Pour code (même si pas exceptionnel):
http://nikopol0.alrj.org/geowave/

Compressions des données:


http://www.ruses.com/Pages/0001000B.htm
http://hocine.bekkouche.free.fr/

Livres:
- Une exploration des signaux en ondelettes ; MALLAT Stéphane, Les éditions de l’École
Polytechniques, Paris (2000) ; ISBN : 2-7302-0733-X ;

- ONDELETTES ; Claude Portenier (Version du 20 octobre 2000), Fachbereich Mathematik und


Informatik Philipps-Universität Marburg

Articles :
- ADAPTIVE WAVELET DECOMPOSITIONS DRIVEN BY A WEIGHTED NORM OF THE
GRADIENT, Gemma Piella, Henk Heijmans, Béatrice Pesquet-Popescu. Proc. 3rd IEEE
Benelux Signal Processing Symposium (SPS-2002), Leuven, Belgium, March 21–22, 2002

- L’enseignement des ondelettes : une ouverture sur l’industrie par la norme JPEG2000 ; Ph.
Ravier

- Une introduction (élémentaire) à la théorie des ondelettes ; Lucas QUARTA, Cahier


pédagodique #2, 22 novembre 2001

(Tous les sites mentionnés fonctionnaient quand je les ai utilisés)

17

Vous aimerez peut-être aussi