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 :

Fonctions namedWindow, imshow, imread


Sujet :

OpenCV

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Fonctions namedWindow, imshow, imread
    Bonjour,

    Je viens d'installer OpenCV 2.3.1 sur mon pc (Windows 7 32 bits). J'utilise Eclipse CDT (Eclipse Indigo Service Release 2) avec MinGW (gcc/g++ version 4.6.1). J'ai été voir la doc officielle d'OpenCV 2.3.1 (http://opencv.itseez.com/index.html) et j'ai essayé de faire tourner un bout de code tout simple du tutoriel suivant : http://opencv.itseez.com/doc/tutoria...#display-image (juste afficher une image dans une fenêtre)
    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
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <iostream>
     
    int main( int argc, char** argv )
    {
        if( argc != 2)
        {
         std::cout <<" Usage: display_image ImageToLoadAndDisplay" << std::endl;
         return -1;
        }
     
        cv::Mat image;
        image = cv::imread(argv[1], CV_LOAD_IMAGE_COLOR);
     
        if(! image.data )
        {
            std::cout <<  "Could not open or find the image" << std::endl ;
            return -1;
        }
     
        cv::namedWindow( "Display window", CV_WINDOW_AUTOSIZE );
        cv::imshow( "Display window", image );
     
        cv::waitKey(0);
     
        return 0;
    }
    Mais impossible de faire marcher ce code !

    La compilation se passe bien (j'ai ajouté le dossier bin au PATH, donner le chemin vers les dossiers include et les librairies,...) mais lorsque j'exécute le programme avec une image bmp (ou même avec une image jpeg ou png) en paramètre, une fenêtre s'ouvre (elle porte bien le nom : Display window) et puis elle se grise et j'ai le message Windows : Test_OpenCV.exe a cessé de fonctionner etc...

    j'ai bien configuré la version Release et non pas la version Debug car il n'y a pas de dll de debug pour MinGW. J'ai également essayé de mettre les dll dans le répertoire de l'exécutable ou d'utiliser un code plus orienté C avec des IplImage etc... mais rien n'y fait ! impossible d'ouvrir une fenêtre.

    par contre dans le deuxième tuto (conversion d'une image couleur en niveau de gris) : http://http://opencv.itseez.com/doc/...#display-image
    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
    #include <cv.h>
    #include <highgui.h>
     
    using namespace cv;
     
    int main( int argc, char** argv )
    {
     char* imageName = argv[1];
     
     Mat image;
     image = imread( imageName, 1 );
     
     if( argc != 2 || !image.data )
     {
       printf( " No image data \n " );
       return -1;
     }
     
     Mat gray_image;
     cvtColor( image, gray_image, CV_RGB2GRAY );
     
     imwrite( "./Gray_Image.jpg", gray_image );
     
     namedWindow( imageName, CV_WINDOW_AUTOSIZE );
     namedWindow( "Gray image", CV_WINDOW_AUTOSIZE );
     
     imshow( imageName, image );
     imshow( "Gray image", gray_image );
     
     waitKey(0);
     
     return 0;
    }
    La fonction cvtColor marche et la fonction imwrite aussi (j'ai bien l'image enregistrée au bon endroit) mais là aussi pas moyen d'afficher les images !

    Est ce que quelqu'un a déjà rencontré ce problème ? Est ce un problème connu de OpenCV 2.3.1 ?

    Merci pour votre aide, bonne journée.

  2. #2
    Membre régulier Avatar de GabrielD
    Homme Profil pro
    ingénieur de recherche
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur de recherche

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 88
    Points
    88
    Par défaut
    Bonjour Sylvain,
    As-tu ajouté les binaires de Qt dans le path?
    Tu devrais utiliser Dependency walker pour savoir si tu disposes bien des dll nécessaires.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Merci Gabriel pour ta réponse.

    Apparemment c'est un bug connu qui a été remonté aux développeurs : https://code.ros.org/trac/opencv/ticket/1494

    Je vais essayer de recompiler les sources du depôt directement.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Même après recompilation à partir des sources le bug est toujours là ! Le problème a encore été remonté il y a quelques jours : http://code.opencv.org/issues/1668

    Du coup je vais devoir attendre que le bug soit corrigé ou alors passer sur Visual et abandonner Eclipse et MinGW pour le moment !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    C'est moi qui ai indiqué le bug #1668, il a été fermé car il n'existe pas (plus) sur le trunk.

    Depuis je prend le code directement sur SVN et je n'ai plus de soucis, je ne sais pas où ils en sont des releases, mais les prochaines devraient logiquement être bonnes.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Ok merci pour ton retour !

    J'étais passé sur VS2010 en attendant la correction du bug mais c'est bien de savoir que maintenant le problème est réglé !

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

Discussions similaires

  1. récupération des données de la fonction imread
    Par Adem84 dans le forum Images
    Réponses: 12
    Dernier message: 08/02/2010, 12h33
  2. Utilisation fonction imshow sur une partie d'une matrice
    Par bertrand42300 dans le forum Images
    Réponses: 2
    Dernier message: 25/04/2009, 11h30
  3. problème fonction imread
    Par frieu dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/01/2009, 00h29
  4. la fonction imread
    Par guivara dans le forum Images
    Réponses: 2
    Dernier message: 23/03/2008, 19h06
  5. Réponses: 2
    Dernier message: 19/10/2007, 17h31

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