Lecture et ecriture d'une image pgm double pointeur [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 21 janvier 2016
Statut
Membre
Dernière intervention
23 janvier 2016
-
Messages postés
14834
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
22 octobre 2020
-
Bonjour,
Dans le cadre d mon projet sur le traitement des images dans langage c,je dois lire une image PGM puis recopier les valeurs de ses pixels dans un autre fichier
exemple du pgm:
P5
512 512
255
.....
ligne 1 :correspond au "magic number"
ligne 2 :hauteur largeur
ligne 3:la valeur maximale qu'un pixel peut prendre
à la suite valeur de chaque pixel

quelle est le prblm de ce code svp


#include <stdio.h>
     #include <stdlib.h>
    #include <math.h>
    #include <malloc.h>
    int main()
    {
    int nbl,nbc;
    int i,j;
     char ** image;
    char ligne[100];
    FILE* voiture;
    voiture=fopen("test.pgm","r" );
    if(voiture==NULL) {printf("ERROR" ); return(0);}
    for(i=0;i<1;i++)
    {
     fgets(ligne,100,voiture);
     printf("\n%s\n",ligne);
    }
    fscanf(voiture,"%d %d %d\n",&nbc,&nbl,&i);
    printf("nb ligne:%d\nnb col:%d\n %d\n",nbl,nbc,i);
    image=(char**) malloc(nbl*sizeof(*image));
    for(i=0;i<nbl;i++){
 
     image[i]=(char*) malloc(nbc*sizeof(*image[i]));
  }
    for(i=0;i<nbl;i++){
 
     for(j=0;j<nbc;j++){
  
      fscanf(voiture,"%c",image[i]+j);
     printf("%c\t",image[i][j]);
   }
   }
     // for(i=0;i<n;i++)
  //fread (image[i], sizeof(char), m, voiture);
    //for(i=0;i<nbl;i++)
     //for(j=0;j<nbc;j++)
      //printf("%c\t\n",image[i]+j);
    
    FILE* voiture2;
    voiture2=fopen("voiture2.pgm","wt" );
    if(voiture2==NULL) {printf("ERROR2" ); return(0);}
    fprintf(voiture2,"P2\n" );
    fprintf(voiture2,"%d %d\n255 \n",nbl,nbc);
  //  int s=n+m;
    for(i=0;i<nbl;i++)
     for(j=0;j<nbc;j++)
     
      fprintf(voiture2,"%c",image[i][j]);
    
 for(i=0;i<nbl;i++)
     free(image[i]);
    free(image);
    fclose(voiture);
    fclose(voiture2);
   
  
    system("xnview.exe voiture2.pgm");
     return(0);
   
    }


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Messages postés
14834
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
22 octobre 2020
92
Hello,

J'ai rajouté les balises 'code' pour plus de lisibilité (cf. ton message).

Pourquoi dis-tu qu'il y a un problème?

Cela ressemble beaucoup à ceci : http://codes-sources.commentcamarche.net/forum/affich-1590121-lire-et-ecrire-une-image-en-format-pgm