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 :

Problème avec cvNamedWindow()


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut Problème avec cvNamedWindow()
    Bonjour a tous,

    J'ai un petit probleme, l'appel a la method cvNamedWindow() m'ouvre bien une fenêtre, même celle ci est plantée. Si je veux la fermer, j'ai le droit a une jolie, "L'application ne répond pas ..."

    Pourtant mon code est on ne peut plus simple (enfin devenue simple a force de commenter ... et ... simplifier ) :
    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
     
    #include <iostream>
    //openCV
    #include <opencv/cv.h>
    #include <opencv/highgui.h>
    int main(void)
    {
        std::string in;
        bool end = false;
        cvNamedWindow("Events_in_main", 0);
        while(!end)
        {
            std::cin >> in;
            if (in=="quit")
                end=true;
        }
        return EXIT_SUCCESS;
    }
    J'utilise VC2005, avec OpenCV2.0
    Je crée mes projet avec CMake, mais a priori ça n'a rien a voir ...

    Si vous avez des idée ... Google ne m'a pas été d'un grand secours ...

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    Sous linux, avec une compilation avec GNU gcc je n'ai aucun problème ...

    Je vais investiguer ...

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 65
    Par défaut
    normal! dans la doc d'OpenCV2.0, dans le paragraphe sur cvWaitKey(int), on peut lire:
    This function[cvWaitKey(int)] is the only methode in HighGUI that can fetch and handle events, so it needs to be called periodically for normal event processing ...
    En gros, la fonction cvWaitKey(int) permet d'attendre une entrée du clavier (comme le kbhit() de conio.h), de gérer les évènements divers (comme redessiner ton image si tu bouges la fenêtre), et de retourner le code ascii de la touche appuyé .

    donc, tu peux modifier ton code pour qu'il devienne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <cv.h>
    #include <highgui.h>
     
    int main(int argc, char * argv[])
    {
        cvNamedWindow("Events_in_main", 0);
        while(cvWaitKey(0) != 'q');
        return EXIT_SUCCESS;
    }

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    ^^3(1 01011,

    Mais le problème c'est que :
    1) Bizarrement ça fonctionne sous Linux.
    2) Je n'attends pas de saisie clavier de la part d'un utilisateur lambda.

    Le premier problème est "directement" lié à la librairie.

    Quand au second, la question est : Suis je entrain d'utiliser la bonne librairie pour mon application ...
    A priori sous Linux ça passe, même si j'ai encore quelques problème. En ce qui concerne Windows, je me demande si j'ai compilé les "3rd party library".

    Merci encore.

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 65
    Par défaut
    Citation Envoyé par Clercq Voir le message
    ^^3(1 01011,

    Mais le problème c'est que :
    1) Bizarrement ça fonctionne sous Linux.
    2) Je n'attends pas de saisie clavier de la part d'un utilisateur lambda.

    Le premier problème est "directement" lié à la librairie.

    Quand au second, la question est : Suis je entrain d'utiliser la bonne librairie pour mon application ...
    A priori sous Linux ça passe, même si j'ai encore quelques problème. En ce qui concerne Windows, je me demande si j'ai compilé les "3rd party library".

    Merci encore.
    Je te rassure, sous windows xp sp3 et mingw3.4.5 ou mingw4.4.0, ton code plante. je trouve plutôt bizarre qu'il fonctionne sous linux.
    A mon avis, si tu souhaites réaliser une interface homme-machine puissante, n'utilise pas les fonctions offertes par OpenCV qui sont trop basique, utilise plutôt la richesses de Qt4 (comme moi), MFC, wxWidget ... ou n'importe qu'elle autre bibliothèque spécialiser dans la création de GUI.

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    J'avoue que Qt4 est une très bonne bibliothèque, avec laquelle j'ai pris du plaisir a travailler quand j'étais développeur.

    Mais la je suis dans une optique d'optimisation où il me faut une bibliothèque légère, et "puissante", ce qui, normalement, est le cas d'openCV puisque optimisé pour les processeur Intel.

    De plus, je ne fais pas une IHM, je fais juste un affichage de camera pour une question de "validation visuelle". Dans un réel cas d'utilisation du système, l'affichage est inutile, du coup je n'ai pas le besoin de passé du temps a créer une interface plus "complexe"...

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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