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

OpenCV Discussion :

cvLoadImage depuis un tampon


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut cvLoadImage depuis un tampon
    Bonjour,

    Je cherche désespérément le moyen de charger une image (au format JPEG) depuis un buffer plutôt que depuis un fichier.

    J'ai d'abords pensé à la librairie libjpeg, mais le manque de tutoriels et de documentation ma légèrement refroidi... De plus, je n'ai trouvé aucune fonction pour charger une image autrement que depuis un fichier.

    Je ne cherche pas une solution toute faite mais si quelqu'un aurait une quelconque piste, je suis preneur !

    Merci d'avance,

    Sam

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 50
    Par défaut
    Qu'entends tu par charger une image au format JPEG a partir d'un buffer ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    J'utilise la librairie cURL pour charger une image au format JPEG depuis un serveur web. Une fois l'image chargée, j'ai un buffer contenant cette image.

    Le but serait donc de transformer ces informations brutes en IplImage afin de pouvoir les traiter avec OpenCV.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 50
    Par défaut
    Tu crées une IplImage* img; et ensuite tu charges ton buffer (char*) dans le champ imageData de ta structure IplImage*

    img->imageData = buffer;

    C'est bien ce que tu cherches a faire ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Oui, mais ce n'est pas possible directement comme cela, imageData contient un tableau de pixel (ou plus avec les channels). Or, mon buffer contient une image JPEG encore compressée.

    La fonction cvLoadImage se charge de parser un fichier pour déterminer son format (JPEG, PNG, ...) et toutes les composantes de l'image (Taille, channels, ...) et finalement de charger le tableau imageData avec les valeurs des pixels pour chaque channel.

    C'est ce que je cherche à faire, mais pas depuis un fichier. Evidemment je pourrais d'abords enregistrer mon image sur le disque dur et la relire ensuite, mais cela n'est pas propre et cela pose un sérieux problème de performances.

    Sam

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    J'ai trouvé une solution intermédiaire avec la librairie FreeImage (C++). Les méthodes utilisés sont les suivantes :

    FreeImage_OpenMemory
    FreeImage_GetFileTypeFromMemory
    FreeImage_LoadFromMemory

    A partir de là, on peut demander toutes les informations utiles de l'image (Largeur, hauteur, ...). Pour terminer, il faut parcourir pixel par pixel et inscrire la nouvelle valeur dans une structure IplImage.

    Sam

Discussions similaires

  1. [CR][VB6] Impression d'un état depuis VB
    Par sda dans le forum SDK
    Réponses: 3
    Dernier message: 06/02/2007, 17h27
  2. [TP]vider le tampon clavier
    Par kael kael dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 11/01/2003, 22h19
  3. [VB6] Savoir depuis VB, si un document Excel est ouvert
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 08h16
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00

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