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 :

Convertir une IplImage en BMP


Sujet :

OpenCV

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut Convertir une IplImage en BMP
    bonjour,

    j'ai pu coder quelques exemples de 'object tracking ' sous builder en utilisant opencv , mais j'ai un probleme d'ffichage , car pour afficher une image sous opencv elle crée une fenetre a part et affiche l'image dedans , mais pour des raisons d'ergonomies je veux afficher le résultat dans un TImage, mais il y a erreur de conversion de IplImage en TImage , je ne sais pas koi faire .svp help Me .

    a++
    « Aucun homme ne peut rien vous révéler sinon ce qui repose déjà à demi endormi dans l'aube de votre connaissance»

    « No man can reveal to you aught but that which already lies half asleep in the dawning of your knowledge »_(¯`·.__-Alg3ri4nH4ck3r-__.·´¯)_

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2002
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Salut,
    Voici une fonction qui fait cette conversion

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    ////////////////////////////////////////////////////////////////////////////////////
    // - the "src" Image must have a IPL_DEPTH_8U ofand 1 or 3 channels		//
    // - the convertion is done in regards to the ROI if it is set					//
    // - if you want to stretch your TBitmap ,specify width and height before
    //   calling the function
    ////////////////////////////////////////////////////////////////////////////////////
     
    #include <Graphics.hpp>
    #include <Dialogs.hpp>
     
    #include <cv.h>
     
    bool __fastcall IplImageToTBitmap (const IplImage *src,Graphics::TBitmap *dest){
     
       if (!src || !dest)
          return false;
     
       IplImage *temp;
     
       CvRect roi;
     
       if (src->roi)
          roi=cvGetImageROI(src);
       else
          roi=cvRect(0,0,src->width,src->height);
     
       temp=cvCreateImage(cvSize(roi.width,roi.height),IPL_DEPTH_8U,3);
     
       if (src->nChannels!=3)
         cvCvtColor(src,temp,CV_GRAY2RGB);
       else
          cvCopy(src,temp);
     
       if (dest->Width==0 || dest->Height==0){
          dest->Width = roi.width;
          dest->Height = roi.height;
       }
       else{
          IplImage *temp1=cvCloneImage(temp);
          cvReleaseImageData(temp);
          cvInitImageHeader(temp,cvSize(dest->Width,dest->Height),IPL_DEPTH_8U,3,src->origin,4);
          cvCreateImageData(temp);
          roi.width=dest->Width;
          roi.height=dest->Height;
          cvResize(temp1,temp);
          cvReleaseImage(&temp1);
       }
     
       dest->PixelFormat=pf24bit;
     
       try{
          unsigned char *pLine;
          int x,y;
     
          for(y=0 ;y<roi.height;y++){
             pLine = (unsigned char *)dest->ScanLine[y];
             for(x=0 ;x <roi.width*3  ;x++){
                pLine[x]= ((unsigned char*)(temp->imageData + temp->widthStep*y))[x];
             }
          }
       }
       catch(...){
          ShowMessage("Error while converting ...");
       }
     
       cvReleaseImage(&temp);
       return true;
    }
    Et ça marche bien! Je l'utilise courament

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    merci , je l'ai essayé apparement àa marche mais commeme un tout pti probleme : comment je fais pour ne pas afficher les petite fenetre standard d'opencv
    « Aucun homme ne peut rien vous révéler sinon ce qui repose déjà à demi endormi dans l'aube de votre connaissance»

    « No man can reveal to you aught but that which already lies half asleep in the dawning of your knowledge »_(¯`·.__-Alg3ri4nH4ck3r-__.·´¯)_

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir une image Gif en Bmp
    Par alen dans le forum MFC
    Réponses: 3
    Dernier message: 11/10/2005, 21h55
  2. Comment convertir une image en BMP ?
    Par blaiseac dans le forum Langage
    Réponses: 6
    Dernier message: 30/07/2005, 18h24
  3. Comment convertir une image bmp en png??
    Par Leclair2000 dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2005, 08h15
  4. Convertir une image BMP 8 bits en BMP 24 bits
    Par SauCisS dans le forum Bibliothèques
    Réponses: 17
    Dernier message: 23/03/2005, 09h51
  5. [C#] Comment convertir une image bmp en jpg !!!
    Par vandeyy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2004, 20h37

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