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

وهران سيما 3 Messages postés jeudi 21 janvier 2016Date d'inscription 23 janvier 2016 Dernière intervention - 21 janv. 2016 à 00:52 - Dernière réponse : BunoCS 13764 Messages postés lundi 11 juillet 2005Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention
- 21 janv. 2016 à 09:35
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.
Afficher la suite 

1 réponse

Répondre au sujet
BunoCS 13764 Messages postés lundi 11 juillet 2005Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 21 janv. 2016 à 09:35
0
Utile
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
Commenter la réponse de BunoCS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.