Fonction renvoyant une matrice

taous -  
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,voila je travaille sur des image qui sont stockées sous forme de matrice,je dois faire une fonction qui permet de binariser l'image et qui aura comme paramètres d'entrée la matrice img[Taille][Taille],le problème est qu'elle doit retourner une autre matrice im_bin[Taille][Taille] qui contient l'image binarisée.

void *binariser(int mat[][643],int t,int *ptr)
{
int i,j;
for(i=0;i<t;i++)
{
for(j=0;j<t;j++)
{
if(mat[i][j]<=seuil)
mat1[i][j]=0;
if(mat[i][j]>seuil)
mat1=1;
}
}
ptr=&mat1[0][0];
return(ptr);
}
///voici l'appele à la fonction:
binariser(img,643,&im_bin[0][0];

le problème est que la fonction me renvoi seulement le premier èlèment de la matrice,aidez moi svp ,c'est pour mon projet de fin d'ètude et le temps presse.
A voir également:

1 réponse

lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Le type de ta fonction est void donc elle n'envoie rien.
En revanche je vois que tu as int *ptr en tant que paramètre.
Au moment de l'appelle de ta fonction le pointeur passer un argument est censé contenir l'adresse de mat1

Tu peux essayer
void binariser(int mat[][643],int t,int *ptr)
{
  int i,j;
  for(i=0;i<t;i++){
    for(j=0;j<t;j++){
      if(mat[i][j]<=seuil)
        mat1[i][j]=0;
      if(mat[i][j]>seuil)
        mat1=1;
    }
  }
  ptr=mat1;
}
0