[C++]Problème de boucle

Loana -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'aurai besoin d'aide sur l'écriture des boucles et les incrémentations pour aboutir au résultat demandé.
Ecrire une méthode qui prend en paramètre un nombre entier N et qui transforme l'image de départ en formant des "agglomérats" de taille NxN. La couleur du "pavé" correspondant est déterminé par la moyenne arithmétique des couleurs présentes dans les N*N pixels

Pour le reste, je saurai me débrouiller.

Merci

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    La première étape c'est d'isoler un carré de taille N à partir d'un pixel (i,j). Ca consiste donc à isoler le carré lignes i à N+i et colonnes j à N+j;
    void extract(unsigned int N,unsigned int i,unsigned int j,int **matrix, int **agg){
      unsigned int x,y;
      for(y=i;y<i+N;++y){
        for(x=j;x<j+N;++x){
          // agg doit être alloué sinon segmentation fault
          // matrix[x][y] doit exister sinon segmentation fault
          agg[i][j] = matrix[x][y]; 
        }
      }
    }

    Ensuite étant donné un carré de taille N, faire la moyenne arithmétique revient à sommer les termes du carré et les diviser par N² :
    int arith_mean(unsigned int N,int **matrix){
      unsigned int x,y,sum=0;
      for(y=0;y<N;++y){
        for(x=0;x<N;++x){
          // matrix[x][y] doit exister sinon segmentation fault
          sum += matrix[x][y]; 
        }
      }
      return sum / (N * N);
    }

    Bonne chance
    0