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

Messages postés
3
Date d'inscription
jeudi 21 janvier 2016
Dernière intervention
23 janvier 2016
- 21 janv. 2016 à 00:52 - Dernière réponse :
Messages postés
14235
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
20 novembre 2018
- 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 

Votre réponse

1 réponse

Messages postés
14235
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
20 novembre 2018
21 janv. 2016 à 09:35
0
Merci
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.