Faire le gradient d'une image en C

MekRyme Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je veux faire un traitement d'image en langage C, j'ai commencé avec la fonction gradient mais ça n'a pas marché voici le code:

int** gradientMatrix(FILE* lpFile, int **lpMatrix, int nLines, int nColumns)
{
  int nI, nJ,fx=0,fy=0;
  int** GMatrix;
  GMatrix = AllocMatrix(nLines, nColumns);
  LoadMatrix(lpFile, GMatrix, nLines, nColumns);//chargement de l'image
  printf("\nGRADIENT :\n");
     for (nI = 0; nI < nLines; nI++)
     {
        for (nJ = 0; nJ < nColumns; nJ++)
          {
            fy = abs(lpMatrix[nI][nJ+1] -  lpMatrix[nI][nJ]);
            GMatrix[nI][nJ]= fy;
          }
          printf("\n");
     }
   DisplayMatrix(GMatrix, nLines, nColumns);// fonction d'affichage 
return GMatrix;
}


s'il vous plait aidez moi c'est urgent!!!!
A voir également:

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
pas clair ton histoire.
déjà tes bornes ne sont pas bonnes, tu risque le débordement de tableaux et donc l'erreur de segmentation.
Ensuite, le gradient, c'est un vecteur. Je suppose que tu veux afficher sa norme, mais pour ça il faut calculer ces deux composantes, là tu n'en calcul qu'une. Ensuite, tu fait le choix de dériver en aval, plutôt qu'une dérivée centrée, pourquoi pas, mais pourquoi ?
Ensuite, comme il s'agit d'image, il faut bien faire attention aux valeurs retournées, qu'elles restent dans le bon domaine (mais ça doit être bon).
0