IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Récupérer la matrice d'une image en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Récupérer la matrice d'une image en C
    Salut tout le monde
    je veux récupérer la matrice d'une image en c sans utiliser la bib. SDL car je veux implémenter ce code sur un processeur VLIW en utilisant l'outil Trimaran
    Aidez moi je suis bloquée...
    Merci.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Si tu veux lire une image depuis un fichier de manière simple sans utiliser de bibliothèque tu dois également utiliser un format de fichier simple pour ton image, comme par exemple le format de fichier PPM P6 ([ame=http://en.wikipedia.org/wiki/Netpbm_format]Netpbm format[/ame]).
    Ce format est très simple: une entête ascii avec plusieurs lignes, première ligne la chaine "P6", la deuxième ligne contient 2 int écrits en ascii qui donnent les dimentions de l'image, la troisème ligne doit être "255" indiquant que l'on est en profondeur de couleur 8 bits, tous ce qui suit est alors l'équivalent de ce qui va être en mémoire, donc il suffit de le lire avec fread() comme tu peux le voir sur cette page :
    http://rosettacode.org/wiki/Bitmap/Read_a_PPM_file#C

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Ou tout simplement, le sauver en RAW sur une machine ayant les capacités pour le faire... Il n'y a ensuite plus qu'à lire bourrinement le fichier directement dans une matrice C.

    Si le format de l'image t'es imposé, par contre, il va falloir nous le donner (savoir si son format est public ou pas), et donner approximativement la puissance CPU et les ressources disponibles sur ta machine cible (afin de savoir si ça n'est pas "mission impossible").
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #4
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Bonjour tout le monde,
    J'ai essayé ce code mais je trouve pas de résultats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #include <stdlib.h> 
    #include <stdio.h> 
     
    typedef struct { 
       unsigned char **donnees; 
       int hauteur; 
       int largeur; 
       int magicNumber; 
    } structImg; 
     
    int main(int argc ,char **argv) 
    { 
    structImg image; 
    int i; 
    int pixel; 
    FILE* fpInput =fopen("1.bmp","r"); 
    image.donnees=(unsigned char**)calloc(image.hauteur,sizeof(unsigned char*)); 
    *image.donnees=(unsigned char*)calloc(image.hauteur*image.largeur,sizeof(unsigned char)); 
     
    for(i=1;i<image.hauteur;i++) 
       image.donnees[i] = image.donnees[i-1] + image.largeur; 
     
     
    for(i=0;i<image.hauteur*image.largeur;i++) 
    { 
       fscanf(fpInput,"%d",&pixel);   
       image.donnees[i/image.largeur][i%image.largeur]=(unsigned char)pixel; 
     
    } 
    for(i=0;i<image.hauteur*image.largeur;i++) 
    { 
     printf("%s\n", **image.donnees); 
    } 
     system("pause"); 
        return 0;    
     
    }

  5. #5
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par MeRym Voir le message
    J'ai essayé ce code mais je trouve pas de résultats
    Ce qui ne répond pas à la question que je t'ai posée : le format de l'image est-il imposé ? Si oui, quel est-il ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE* fpInput =fopen("1.bmp","r");
    D'après ton code, il semblerait que l'image soit au format bmp.
    Il faut que tu consultes les spécifications de ce format. Tu les trouveras, par exemple, sur ce site

Discussions similaires

  1. Récupérer la matrice d'une image bmp
    Par MeRym dans le forum C
    Réponses: 2
    Dernier message: 13/04/2010, 14h26
  2. [javascript]Récupérer le nom d'une image
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/10/2005, 13h56
  3. [Debutant] Récupérer le nom d'une image
    Par Djoul dans le forum Débuter
    Réponses: 4
    Dernier message: 30/05/2005, 09h52
  4. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo