Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec lecture d'image en format pgm

Sujet résolu
    15 décembre 2018 à 20:27:22

    Bonjour, 

    Je dois réaliser un projet en C sur le traitement d'image pgm. J'ai réalisé le programme de lecture de l'image ci-dessous. Mais j'ai un problème sur les images volumineuses de type P5. Au bout d'un moment, toutes les valeurs lues sont égales à 255. J'ai fait plusieurs tests, le nombre de valeurs correctement lues n'est jamais le même suivant le fichier. J'ai aussi essayé de commencer à lire le fichier à différents endroits, mais la lecture ne s'arrête pas toujours au même endroit. Je ne vois donc pas du tout pourquoi j'ai ce problème. D'autant plus qu'avec le même programme un peu modifié, j'arrive à lire les images de type P2 correctement.

    Merci pour vos réponses.

    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main ()
    {
        FILE * ptr ;
        char name [40], type[10], ch_dynamique[10];
        unsigned char **image;
        int longueur, largeur;
        int i, j;
        printf("Nom du fichier : "); scanf("%s", name);
        ptr = fopen(name, "r");
    
        /*acqusition des caracteristiques de l'image*/
        fscanf(ptr,"%s %d %d %s ", type, &longueur, &largeur, ch_dynamique);
    
        printf("type : %s\n", type);
        printf("longueur : %d\n", longueur);
        printf("longueur : %d\n", largeur);
        printf("dynamique : %s\n", ch_dynamique);
    
        /*allocation de image en fonction de la longueur et de la largeur de l'image, et lecture des pixels*/
        image=(unsigned char**)malloc(longueur*sizeof(unsigned char*));
        for(i=0; i<longueur; i++){
            image[i]=(unsigned char*)malloc(largeur*sizeof(unsigned char));
            for(j=0; j<largeur; j++){
                image[i][j]=fgetc(ptr);
                printf("%3u ", image[i][j]);
            }
            printf("\n");
        }
    
    
        return (0);
        }
    
    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2018 à 22:56:00

      Salut ! 

      Si tu ouvres un fichier binaire, fopen en "rb" et pas en "r" 

      Tu es sous windows ?

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        16 décembre 2018 à 12:31:05

        Ca a marché, c'était juste ça. Merci beaucoup :D
        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec lecture d'image en format pgm

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown