Lire et écrire une image en format PGM

cs_khaled79 Messages postés 2 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 9 mai 2012 - 9 mai 2012 à 01:13
cs_Jios Messages postés 7 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 30 juin 2016 - 18 mai 2012 à 15:41
#include <stdio.h>
#include <math.h>
#include <malloc.h>
int main()
{
int n,m;
int i,j;
unsigned char ** image;
char ligne[100];
FILE* voiture;
voiture=fopen("lena.pgm","r" );
if(voiture==NULL) {printf("ERROR" ); return(0);}
for(i=0;i<2;i++)
{
fgets(ligne,100,voiture);
printf("\n%s\n",ligne);
}
fscanf(voiture,"%d%d%d\n",&m,&n,&i);
printf("nb ligne:%d\nnb col:%d\n%d\n",n,m,i);
image=(unsigned char**) malloc(n*sizeof(unsigned char*));
for(i=0;i<n;i++)
image[i]=(unsigned char*) malloc(m*sizeof(unsigned char));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(voiture,"%c",image[i]+j);
/*for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf("%d",image[i][j]);
*/
FILE* voiture2;
voiture2=fopen("voiture2.pgm","wt" );
if(voiture2==NULL) {printf("ERROR2" ); return(0);}
fprintf(voiture2,"P5\n#Copy by dark86\n" );
fprintf(voiture2,"%d %d\n255\n",m,n);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fprintf(lena2,"%c",image[i][j]);
for(i=0;i<n;i++)
free(image[i]);
free(image);
fclose(voiture);
printf("khaleeeeeeeeeed");
fclose(voiture2);
return(0);
}

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 mai 2012 à 08:19
sizeof(unsigned char*)

???


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
9 mai 2012 à 10:44
Bonjour

1) Quelle est la question précise ?
2) Merci d'utiliser les balises de code. Si tu ne fais pas cet effort nous ne ferons pas non plus l'effort de t'aider.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
cs_khaled79 Messages postés 2 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 9 mai 2012
9 mai 2012 à 17:52
le probleme est que l'image crée (voiture2.pgm) est n'est pas crée correctement ,une grande partie est en noir!!!
voila la fichier du test (lena.pgm ) http://www.ece.umd.edu/class/enee631.F2001/am/am3/Lena.pgm
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
9 mai 2012 à 18:07
Le code est apparemment pompé d'un vieux code de 2005: http://forum.hardware.fr/hfr/Programmation/C/image-copie-image-sujet_66441_1.htm
Dans la conversation, il propose des petites améliorations que l'auteur de ce post n'a même pas pris le temps d'appliquer au code...

Comprends-tu vraiment le code que tu as copié ? (copier du code c'est bien, tant qu'on le comprend, et qu'on ne le recopie pas bêtement).

Par exemple, à quoi sert le modificateur "t" dans la fonction fopen ?
Pourquoi ajouter un commentaire en haut de chaque fichier pgm ? (Le commentaire est: "#Copy by dark86").
Pourquoi écrire "image=(unsigned char**) malloc(n*sizeof(unsigned char*));" au lieu de "image=malloc(n*sizeof(unsigned char*));" ? (C'est du C, donc pas besoin de caster le retour du malloc).

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
10 mai 2012 à 08:54
salut,
tu peux regarder ce lien:
http://www.codeproject.com/Articles/1300/CxImage
il contient le code pour lire et écrire le format pgm


louis
0
cs_Jios Messages postés 7 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 30 juin 2016 5
18 mai 2012 à 15:41
Bonjour,

Je viens de mettre en anciens code pour le traitement d'image au format PGM
Lien du post.
En espérant que cela puisse t'aider.

Jios
0
Rejoignez-nous