Bonsoir a tous,
Voila j'ai un peu petit problème avec les quadtree pour traiter des images. J'ai cherché pas mal par moi même et ensuite sur internet mais je ne comprends toujours pas comment coder cette fonction...

Tout d'abord nous avons une structure image comprenant ces différentes fonctions:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
  Image*createImage (int w, int h);/* creer une image de taille w*h */
   int getWidth(Image*image); /* donne la largeur de l'image */
   int getHeight (Image *image); /*donne la hauteur de l'image */
   int getValue (Image *image, int x, int y); /* donne la valeur du pixel (x,y) */
   void setValue (Image *image, int x, int y, int val); /* attribue la valeur val au pixel (x,y) */
La structure du Quadtree:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
   typedef struct Quadtree
   {
       struct Quadtree *FilsNE, *FilsNO, *FilsSE, *FilsSO;
       int valeur /* Pour stocker la valeur moyenne de la couleur */
   }Quadtree;
La fonction que j'essaye de coder est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Image* QuadtreeToImage(Quadtree* qt); /* qui prend en argument un quadtree, et retourne l'image associée */
Voila donc je ne sais pas comment faire pour la coder...

Je me doute qu'il faut l'aborder recursivement, commencer par la racine, recuperer les valeurs des couleurs a l'aide de la fonction prevu a cet effet mais je ne vois pas comment lui fournir les bonnes coordonnées... et faire les appels recursivement...

Je vous remercie deja de m'avoir lu, et si vous pouviez me donner des pistes de reflexions ce serait formidable!!!

Merci,

Bonne soirée a vous

NB: Les images auront une taille carrée, de coté egal a une puissance de deux.