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 :

Lire des images en C


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 77
    Par défaut Lire des images en C
    Bonsoir,

    J'aurais quelques questions concernant la lecture d'image en C. Je suis debutant en programmation C et je cherche un moyen de lire et pouvoir recuperer des données concernant une image ( par exemple recuperer pixel par pixel les données RGB). Connaissez-vous des outils afin d'y arriver ? J'aimerais pouvoir traiter la plupart des formats d'images.

    Merci de votre aide

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Chaque format a son propre codage. Par exemple il y aura un en-tête, une description puis les pixels. dans certaisn cas, les pixels seront en RVB, dans un autre ce sera du RJB etc.
    Ceci dit, il existe des librairies déjà toutes faites (libjpeg pour lire du jpeg etc) ou bien (si tu tiens à tout refaire) des descriptions détaillées des formats non propriétaires...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 77
    Par défaut
    J'ai trouvé une bibliothèque qui se nomme FreeImage. Je l'ai donc installer mais je ne sais absolument pas comment l'utiliser. Je ne trouve quasi aucun tutoriel.. Quelqu'un connaitrait par hasard cette bibliothèque et qui puisse m'aiguiller sur comment l'utiliser ?

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    A défaut de la doc de 139 pages en anglais (tu vois, moi je l'ai survolée !!!), t'as essayé de regarder au-moins la faq ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 77
    Par défaut
    Alors j'ai avancé un peu, voilà mon debut de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    FIBITMAP* bitmap = FreeImage_Load(FIF_JPEG, filename, 0);
        int h = FreeImage_GetHeight(bitmap);
        int w = FreeImage_GetWidth(bitmap);
        printf("%d", h);
        RGBQUAD* color;
        FreeImage_GetPixelColor(bitmap, 10, 10, color);
        BYTE test = color.rgbBlue;
        printf(test);
    J'arrive bien à chargé l'image etc.. tout ca c'est bon. J'aimerais recuperer les valeurs RGB des pixels. J'ai vu qu'il existait une methode getPixelColor(), et elle rempli un type RGBQUAD.
    Chaque couleur est de type BYTE. J'aimerais recuperer par exemple la couleur bleue. Mais quand je fais BYTE = color.rgbBlue; , cela ne fonctionne pas. J'ai une erreur : "request for member 'rgbBlue' in something not a structure or union".

    Merci

  6. #6
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    color est déclaré comme étant un pointeur sur une structure RGBQUAD et non pas une structure directement
    il faut adresser les membres de la structure de manière indirecte : color->rgbBlue

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 77
    Par défaut
    Malheuresement, j'ai essayé mais ca ne fonctionn pas :/ Cette fois ci, la compilation fonctionne mais à l'execution, le .exe crash.
    J'ai essayé color->rgbBlue mais aussi (*color).rgbBlue et même resultat.

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Soit color est alloué => color=malloc(sizeof(RGBQUAD)) puis tu peux le remplir

    Soit color récupère un truc venant d'une autre fonction => color=quelque_chose_qui_renvoie_un_pointeur_color().
    Par exemple, en page 23 de la doc en ligne, il y a une ligne RGBQUAD *Palette = FreeImage_GetPalette(hDIB8bpp). Il y a d'ailleurs un exemple complet avec un main().

    Soit color n'est pas un pointeur mais une variable de type RGBQUAD que tu peux alors manipuler comme toutes les autres => RGBQUAD color (sans l'étoile).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    sinon, il y a aussi imagemagik

Discussions similaires

  1. Lire des images dans un fichier 'raw'
    Par cedji dans le forum Images
    Réponses: 10
    Dernier message: 01/07/2009, 17h20
  2. Réponses: 5
    Dernier message: 22/04/2008, 14h29
  3. Lire des images .eps
    Par gigo88 dans le forum MATLAB
    Réponses: 2
    Dernier message: 14/06/2007, 09h55
  4. lire des images BMP
    Par b_electronique dans le forum MFC
    Réponses: 4
    Dernier message: 18/05/2006, 18h20
  5. Lire des images compressées pour Mac
    Par SpaceFrog dans le forum Autres Logiciels
    Réponses: 9
    Dernier message: 04/04/2005, 10h11

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