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 :

Vecteur d' IplImage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut Vecteur d' IplImage
    Bonjour,

    Alors je vais essayer de vous expliquez rapidement la situation. Je dévellope en ce moment une petite application sur VC++ 2005 express, qui doit afficher frame par frame une video dans plusieurs picturebox ( c'est une application Winform ).
    J'utilise par ailleurs la librairie OpenCV, pour le traitement de la video.

    Mon problème est que je doit créer un vecteur, avec toutes les images dedans.

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    IplImage* temp;
    IplImage* vector = new IplImage[nbr_frame];
    for(i=1;i<nbr_frame+1;i++)
    {
    	temp=cvQueryFrame(avi); //Recupere une image sous forme IplImage
    	vector[i]=temp;
    }
    Mais j'ai une erreur durant le remplissage du vecteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error C2679: '=' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'IplImage *' (ou il n'existe pas de conversion acceptable)

    Need Help !

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    utilise la STL !
    Ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    std::vector< IplImage > myVector;
    myVector.reserve(nbr_frame);
     
    for( i=1 ;i<nbr_frame+1;i++)
    {
    	myVector.push_back( cvQueryFrame(avi) );
    }

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut
    Désolé de mon ignorance mais je débute seulementen C++, et ce genre de facon de faire me sont un peu inconnue...

    J'ai tenté ta méthode mais voila les erreurs que cela me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    c:\documents and settings\administrateur\bureau\taff\final\videointerface_1.0\videointerface_1.0\Form1.h(514) : error C2039: 'vector' : n'est pas membre de std 
    c:\documents and settings\administrateur\bureau\taff\final\videointerface_1.0\videointerface_1.0\Form1.h(512) : error C2065: 'vector' : identificateur non déclaré
    c:\documents and settings\administrateur\bureau\taff\final\videointerface_1.0\videointerface_1.0\Form1.h(512) : error C2275: 'IplImage' : utilisation non conforme de ce type comme expression
            c:\program files\opencv\cxcore\include\cxtypes.h(393) : voir la déclaration de 'IplImage'
    c:\documents and settings\administrateur\bureau\taff\final\videointerface_1.0\videointerface_1.0\Form1.h(512) : error C2065: 'myVector' : identificateur non déclaré
    Je ne possède pas le header vector.h

    Je ne sais pas trop quoi faire car j'ai vu que cette méthode est pratique car elle a pas mal de fonctions deja crée pour le remplissage, suppression....

    Personellement, j'ai juste besoin d'y écrire et d'y lire, est ce la pein d'utiliser cette méthode...

    Merci de ton aide !

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Pardon, j'ai oublié de te dire d'inclure:

    Voilà ! Ca devrait marcher!

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut
    Merci de ton aide poukill, il me manquait en effet le header <vector> que j'avais tenté d'ajouter par un #include <vector.h> et c'est surement cela qui a fait que ca ne marchait pas...

    Quoiqu'il en soit, j'ai encore une erreur assez spéciale que j'ai du mal à résoudre.

    Voila, la création du vecteur se passe tres bien, mais des que je cherche à réserver la mémoire voila l'erreur que le compilateur me met :

    ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myVector.reserve(nbr_frame);

    erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    VideoInterface_1.0.obj : error LNK2001: symbole externe non résolu "extern "C" int __cdecl _CrtDbgReportW(int,wchar_t const *,int,wchar_t const *,wchar_t const *,...)" (?_CrtDbgReportW@@$$J0YAHHPB_WH00ZZ)
    C:\Documents and Settings\Administrateur\Bureau\taff\Final\VideoInterface_1.0\Debug\VideoInterface_1.0.exe : fatal error LNK1120: 1 externes non résolus

    Je sais pas trop d'ou cela peut venir...
    J'ai essayé de changer mon int en unsigned int car apparement ca aurait pu causer un probleme, mais l'erreur reste la meme. J'ai meme essayé de mettre 100, mais toujours le meme soucis, il y a t il un probleme dans ma syntaxe ?

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Le reserve n'est pas obligatoire, c'est juste pour la performance...
    Essaye sans, ça marche aussi... Ca sera un peu moins performant (à peine).

    Par contre, je comprend pas pourquoi ça marche pas
    Essaye de compiler en mode "Release" en non plus en Débug...

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

Discussions similaires

  1. Obtenir une IplImage à partir d'un vecteur
    Par zuzudesbois dans le forum OpenCV
    Réponses: 3
    Dernier message: 16/06/2009, 11h50
  2. Vecteur ou liste d'IplImages ?
    Par bricoleurfoo dans le forum OpenCV
    Réponses: 3
    Dernier message: 03/04/2008, 10h20
  3. Récuperer les coordonnées d'un vecteur
    Par kerzut dans le forum OpenGL
    Réponses: 5
    Dernier message: 15/04/2003, 11h51
  4. Zoom sur des vecteurs ou lignes
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 25/11/2002, 10h40
  5. matrices * vecteur
    Par delire8 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 07/09/2002, 14h15

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