Bonsoir a tous,
Voila j'ai un peu petit problèmeavec 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:
La structure du Quadtree:
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 fonction que j'essaye de coder est :
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;
Voila donc je ne sais pas comment faire pour la coder...
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 */
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.
Partager