Quadtree, traitement image
Bonsoir a tous,
Voila j'ai un peu petit problème :cry: 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:
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:
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:
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.