Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire énorme! Comment faire mieux?
Supposons qu’on ait dessiné une ville: On garde en mémoire les segments de droite, arcs de cercle, etc…, approximant notre image. On a approximé notre image par des objets géométriques connus.
Pour garder en mémoire un segment de droite il est plus économique de garder en mémoire: •les deux extrémités du segment •un programme qui explique à l’ordinateur comment tracer le segment. Les objets géométriques sont notre alphabet.
Comment faire pour garder en mémoire un paysage complexe? On utilise le même principe mais on élargit notre alphabet: •On approxime notre paysage par des fractals, par exemple la fougère
On garde en mémoire un programme permettant de tracer la fougère. En voici un en Mathematica m=15000 L[n_]:=If[1<n<87,2,n] H[n_]:=If[86<n<94,3,L[n]] K[n_]:=If[n>93,4,H[n]] R=Table[K[Random[Integer,{1,100}]],{m}]; F[1,x_,y_]:=0 G[1,x_,y_]:=0.16*y F[2,x_,y_]:=x*0.85+y*0.04 G[2,x_,y_]:=-x*0.04+y* F[3,x_,y_]:=x*0.2-y*0.26 G[3,x_,y_]:=0.23*x+0.22*y+1.6 F[4,x_,y_]:=-x*0.15+y*0.28 G[4,x_,y_]:=x*0.26+y* x[1]:=0 y[1]:=0 Do[{x[n+1],y[n+1]}={F[R[[n]],x[n],y[n]],G[R[[n]],x[n],y[n]]},{n,1,m}] T=Table[{x[n],y[n]},{n,m}]; ListPlot[T, AspectRatio->1, Axes-> False]
Principe du traçage de la fougère La fougère est la réunion: •d’une queue •de 3 copies d’elle- même
Pourquoi cela fonctionne-t-il? Regardons le triangle de Sierpinski: Il est la réunion de 3 triangles de Sierpinski. Partons d’un carré et itérons un processus de construction
Cela fonctionne avec n’importe quel ensemble de départ! Essayons-on en un autre:
Exemple Première iterée Sixième itérée
On peut reconstruire la fougère à partir de 4 transformations affines: •la transformation T 1 qui envoie la grosse fougère sur la fougère moins 2 branches •la transformation T 2 qui envoie la grosse fougère sur la branche de gauche •la transformation T 3 qui envoie la grosse fougère sur la branche de droite •la transformation T 4 qui envoie la grosse fougère sur la queue
Il suffit de garder en mémoire cette information pour reconstruire la fougère! Algorithme de construction: •On prend un point P sur la fougère. •On choisit au hasard i dans {1,2,3,4} et on trace P 1 = T i (P). •On choisit au hasard i dans {1,2,3,4} et on trace P 2 = T i (P). •Etc... La méthode s’appelle « Système de fonctions itérées » Elle fonctionne parce que la fougère est auto-similaire.
En pratique •Codage: On remplace chaque petit carré par l’image d’un grand carré sous une homothétie de rapport ½ composée avec une des 8 transformations: • Identité plus 3 rotations • 4 symétries On ajuste le contraste. On fait une translation du niveau de gris.