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 :

Faire une photo avec OpenCV et GTK


Sujet :

OpenCV

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut Faire une photo avec OpenCV et GTK
    Bonjour
    j'ai un petit problème , j'ai une interface très rapidement conçue avec GTK qui est constituée d'une fenêtre et d'un bouton. Lorsque j'appuie sur ce bouton la caméra se lance via opencv!
    au bout d'un certain temps elle doit faire une photo de ce qu'elle voit et l'afficher.
    Probleme : elle n'affiche rien, elle se lance, au bout de quelques boucles elle fait une photo vide


    voici mon code

    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
    void
    on_capture2_toggled                    (GtkToggleButton *togglebutton,
                                            gpointer         user_data)
    {
     
        /* Déclaration des variables */
        double count = -30;
        CvCapture *capture1 = 0;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), IPL_DEPTH_32F  ,3);
     
     
        /* Démarrage de la Caméra */
        int cameras = cvcamGetCamerasCount();
        VidFormat vidFmt={ 640, 480, 30.0};
        cvcamSetProperty(0, CVCAM_PROP_ENABLE     , CVCAMTRUE);
        cvcamSetProperty(0, CVCAM_PROP_SETFORMAT  , &vidFmt);
        cvcamInit();
        cvcamStart();
        capture1 = cvCaptureFromCAM(1);
     
     
        for(;;)
        {
            img_temp = cvQueryFrame(capture1);
            count++;
            if (count == -1)
            {
                img_temp = cvQueryFrame(capture1);
                break;
            }
        }
        cvNamedWindow("test",CV_WINDOW_AUTOSIZE);
        cvShowImage("test",img_temp);

    merci d'avance ^^

    si je lui demande d'afficher l'image il y a un carré gris et si je lui demande d'enregistrer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cvSaveImage("tes.bmp", img_temp);
    il me dit que img_temp est NULL

  2. #2
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    Bonjour,
    Déja petite confusions, tu fais un mix dans ton programme de l'utilisation de la cvcam et de highgui :

    int cameras = cvcamGetCamerasCount();
    VidFormat vidFmt={ 640, 480, 30.0};
    cvcamSetProperty(0, CVCAM_PROP_ENABLE , CVCAMTRUE);
    cvcamSetProperty(0, CVCAM_PROP_SETFORMAT , &vidFmt);
    cvcamInit();
    cvcamStart();
    Utilise des fonctions de cvcam necessitant un callback derriere
    Alors que :
    capture1 = cvCaptureFromCAM(1);


    for(;
    {
    img_temp = cvQueryFrame(capture1);
    count++;
    if (count == -1)
    {
    img_temp = cvQueryFrame(capture1);
    break;
    }
    }
    Utilise des fonctions de highgui


    Bon déja je te conseillerai d'ajouter un test du type :

    CvCapture *capture=cvCaptureFromCAM(-1);
    if (!capture) printf(" > INFO : Camera error\n");

    pour voir si le flux vidéo est bel et bien ouvert.
    Prefere le -1 en indice du cvCaptureFromCam de façon à laisser la librairie chosiir elle même le domaine dans lequel ta camera se trouve

    Voila sinon ça devrait marcher.
    Personnelement je préfere utiliser

    cvGrabFrame(captureL);
    ImageL = cvRetrieveFrame(captureL);

    à la place de QueryFrame ; question de choix
    =>
    OpenCv Addict

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    Bonjour,
    Déja petite confusions, tu fais un mix dans ton programme de l'utilisation de la cvcam et de highgui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int cameras = cvcamGetCamerasCount();
    VidFormat vidFmt={ 640, 480, 30.0};
    cvcamSetProperty(0, CVCAM_PROP_ENABLE , CVCAMTRUE);
    cvcamSetProperty(0, CVCAM_PROP_SETFORMAT , &vidFmt);
    cvcamInit();
    cvcamStart();
    Utilise des fonctions de cvcam necessitant un callback derriere
    Alors que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    capture1 = cvCaptureFromCAM(1);
     
     
    for(;;)
    {
         img_temp = cvQueryFrame(capture1);
         count++;
         if (count == -1)
         {
              img_temp = cvQueryFrame(capture1);
              break;
         }
    }
    Utilise des fonctions de highgui


    Bon déja je te conseillerai d'ajouter un test du type :

    CvCapture *capture=cvCaptureFromCAM(-1);
    if (!capture) printf(" > INFO : Camera error\n");

    pour voir si le flux vidéo est bel et bien ouvert.
    Prefere le -1 en indice du cvCaptureFromCam de façon à laisser la librairie chosiir elle même le domaine dans lequel ta camera se trouve

    Voila sinon ça devrait marcher.
    Personnelement je préfere utiliser

    cvGrabFrame(captureL);
    ImageL = cvRetrieveFrame(captureL);

    à la place de QueryFrame ; question de choix
    Avec le test, le message d'erreur est renvoyé donc le flux n'est pas ouvert ?
    en fait la caméra se lance, je me vois bouger, mais au bout d'un certain temps elle devrait faire un screen et non...

    Sinon je ne vois pas comment faire sur l'histoire du mix entre highgui et cvcam.
    J'ai besoin de l'initialiser, puis de prendre un screen et je ne sais pas comment faire autrement.

    si je luis mets (-1); cvCaptureFromCAM(-1) et bien il me demande a chaque fois de choisir ma caméra k alors que j'en ai qu'une de branché, en mettant 1 , il ne me le demande pas. Est-ce tout de même une erreur?

  4. #4
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    Disons que l'utilisation des fonction de cvcam est obselete : l'initialisation est realisée lorsque tu lances ta fonction cvCaptureFromCAM(-1)

    Tu utilises quoi pour visualiser l'image? Tu veux prendre la photo à l'appuie sur le bouton du gtk c'est ça? Ou juste au bout d'un certain timing.
    Tu as placé un cvSaveImage quelque part?

    Si le message d'erreur s'affiche il y a un petit soucis en effet. Si tu peux detailler un peu plus ton code que je comprenne mieux l'architechture du programme

    edit, ok je susi revenu au premier message. En gros tu veux sauvegarder la 30eme image; je t'avoue que le -1 m'avait un peu traumatisé, en général je compte en partant de Zero
    Essaye de place le cvSaveImage avant de faire le break et de sortir de la boucle.
    =>
    OpenCv Addict

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Alors en fait j'ai une fenêtre qui contient un bouton en GTK.
    je compile
    lorsque je lance l'exe. la fenêtre se lance, lorsque j'appuie sur le bouton, la caméra se met en marche ( ça c'est ok , je me vois), et au bout de 3 secondes (par exemple) une photo est faite (automatiquement) puis affichée à l'écran dans une fenêtre opecv (cvImageShow)
    je n'arrive pas à comprendre pourquoi je me vois et pourquoi la photo est vide.

    voici le code actuel :
    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
    void on_capture_clicked (GtkButton *button, gpointer user_data)
    {
        /* Déclaration des variables */
        int count = 0;
        CvCapture *capture1;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), 32  ,3);
     
     
        /* Démarrage de la Caméra */
        int cameras = cvcamGetCamerasCount();
        VidFormat vidFmt={ 640, 480, 30.0};
        cvcamSetProperty(0, CVCAM_PROP_ENABLE     , CVCAMTRUE);
        cvcamSetProperty(0, CVCAM_PROP_SETFORMAT  , &vidFmt);
        cvcamInit();
        cvcamStart();
        capture1 = cvCaptureFromCAM(1);
        if (!capture1) printf(" > INFO : Camera error\n");
     
        for(;;)
        {
            printf("%d\n", count);
            img_temp = cvQueryFrame(capture1);
            count++;
            if (count == 100)
            {
                img_temp = cvQueryFrame(capture1);
                cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
                cvShowImage("test", img_temp);
                break;
            }
        }
    }

    Le bouton qui permet de faire la photo s'appelle capture
    En fait c'est comme un appareil photo, au moment ou je clic j'ai par exemple 10 seconde pour faire "cheese" ^^
    merci de tes réponses


    l'initialisation est faites comme tu le dis mais le problème c'est que je ne peux pas choisir la résolution et les fps avec l'initialisation par défaut, alors c'est pour cela que je le faisais manuellement.

  6. #6
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    juste une derniere question, tu te vois ou en fait? Je ne vois pas l'endroit ou tu affiches l'image courante de la webcam dans le programme
    =>
    OpenCv Addict

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    juste une dernière question, tu te vois ou en fait? Je ne vois pas l'endroit ou tu affiches l'image courante de la webcam dans le programme
    et bien il ya une fenêtre cvcam window qui s'ouvre sans que je ne lui demande. ca doit venir du cvcamStart();

    Si tu as un code qui n'utilise pas cvcam qui est obsolète comme tu le disais mais qui utilise opencv, et qui fait ce que je veux dans mon interface GTK, je suis preneur

    Merci de l'intérêt que tu portes au sujet

  8. #8
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    ah oui en effet, ça doit donc venir de la.
    Le temps d'ouvrir mon notepad++ et je suis à toi
    Alors soit il faut tout faire avec cvcam, soit il faut tout faire avec highgui, le mix ça ne marche pas (j'avais commencé comme ça )


    Bon sinon pour commencer je testerai quelque chose comme ça.
    J'ai boosté un peu ta temporisation histoire de pouvoir voir qqc

    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
    void on_capture_clicked (GtkButton *button, gpointer user_data)
    {
        /* Déclaration des variables */
        int count = 0;
        CvCapture *capture1;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), 32  ,3);
        GtkWidget *image_capt = lookup_widget(GTK_WIDGET(button), "image_capt");
     
     
        /* Démarrage de la Caméra */
    	//init la capture
        capture1 = cvCaptureFromCAM(1);
        if (!capture1) printf(" > INFO : Camera error\n");
    	//creation de la fenetre ds laquelle sera visualisée la vidéo
    	cvNamedWindow("Webcam",1);
     
    	while(1)
    	{
    	img_temp = cvQueryFrame(capture1);
    	count++;
    	cvShowImage("Webcam",img_temp);
            if (count == 10000)
            {
                img_temp = cvQueryFrame(capture1);
                cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
                cvShowImage("test", img_temp);
    			cvWaitKey();
                break;
            }
    	}
     
    }
    =>
    OpenCv Addict

  9. #9
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    L'étape suivante est bien sur l'integration du flux dans le gtk j'imagine mais faut deja que ça ça marche
    =>
    OpenCv Addict

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    ah oui en effet, ça doit donc venir de la.
    Le temps d'ouvrir mon notepad++ et je suis à toi
    Alors soit il faut tout faire avec cvcam, soit il faut tout faire avec highgui, le mix ça ne marche pas (j'avais commencé comme ça )


    Bon sinon pour commencer je testerai quelque chose comme ça.
    J'ai boosté un peu ta temporisation histoire de pouvoir voir qqc

    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
    void on_capture_clicked (GtkButton *button, gpointer user_data)
    {
        /* Déclaration des variables */
        int count = 0;
        CvCapture *capture1;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), 32  ,3);
        GtkWidget *image_capt = lookup_widget(GTK_WIDGET(button), "image_capt");
     
     
        /* Démarrage de la Caméra */
    	//init la capture
        capture1 = cvCaptureFromCAM(1);
        if (!capture1) printf(" > INFO : Camera error\n");
    	//creation de la fenetre ds laquelle sera visualisée la vidéo
    	cvNamedWindow("Webcam",1);
     
    	while(1)
    	{
    	img_temp = cvQueryFrame(capture1);
    	count++;
    	cvShowImage("Webcam",img_temp);
            if (count == 10000)
            {
                img_temp = cvQueryFrame(capture1);
                cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
                cvShowImage("test", img_temp);
    			cvWaitKey();
                break;
            }
    	}
     
    }
    qund je le lance, l'interface se lance , je clique sur capture, et 2 carré gris s'affiche et dans la console j'ai le message d'erreur : > INFO : Camera error

    Je ne me vois plus sniff

  11. #11
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    et avec -1 à la place de 1 en parametre du cvCaptureFromCam?
    J'ai pas ma webcam sur moi pour les test

    le message signale que la capture n'a pas pu s'ouvrir correctement
    =>
    OpenCv Addict

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    et avec -1 à la place de 1 en parametre du cvCaptureFromCam?
    J'ai pas ma webcam sur moi pour les test

    le message signale que la capture n'a pas pu s'ouvrir correctement
    en fait avec -1 j'ai 1 carré gris qui apparait.
    puis à la fin de la boucle 2 images fixes (dans webcam et dans test)
    se sont bien des photo mais je ne me suis pas vu en vidéo (d'où la grimace ^^)
    En plus la résolution est de 320 x 240 ^^

  13. #13
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    ok déja on a progressé
    La capture est ouverte correctement et ce qui t'arrives au niveau de la visu est plutôt normal
    Maintenant reflechissons

    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
    void on_capture_clicked (GtkButton *button, gpointer user_data)
    {
        /* Déclaration des variables */
        int count = 0;
        CvCapture *capture1;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), 32  ,3);
        GtkWidget *image_capt = lookup_widget(GTK_WIDGET(button), "image_capt");
     
     
        /* Démarrage de la Caméra */
    	//init la capture
        capture1 = cvCaptureFromCAM(1);
        if (!capture1) printf(" > INFO : Camera error\n");
    	//creation de la fenetre ds laquelle sera visualisée la vidéo
    	cvNamedWindow("Webcam",1);
     
    	while(1)
    	{
    	img_temp = cvQueryFrame(capture1);
    	count++;
    	cvShowImage("Webcam",img_temp);
            if (count == 10000)
            {
                break;
            }
    	}
        cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
        cvShowImage("test", img_temp);
    	cvWaitKey();
    	cvReleaseCapture(&capture1);
     
    }
    que donne quelque chose comme ça?
    =>
    OpenCv Addict

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    ok déja on a progressé
    La capture est ouverte correctement et ce qui t'arrives au niveau de la visu est plutôt normal
    Maintenant reflechissons

    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
    void on_capture_clicked (GtkButton *button, gpointer user_data)
    {
        /* Déclaration des variables */
        int count = 0;
        CvCapture *capture1;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), 32  ,3);
        GtkWidget *image_capt = lookup_widget(GTK_WIDGET(button), "image_capt");
     
     
        /* Démarrage de la Caméra */
    	//init la capture
        capture1 = cvCaptureFromCAM(1);
        if (!capture1) printf(" > INFO : Camera error\n");
    	//creation de la fenetre ds laquelle sera visualisée la vidéo
    	cvNamedWindow("Webcam",1);
     
    	while(1)
    	{
    	img_temp = cvQueryFrame(capture1);
    	count++;
    	cvShowImage("Webcam",img_temp);
            if (count == 10000)
            {
                break;
            }
    	}
        cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
        cvShowImage("test", img_temp);
    	cvWaitKey();
    	cvReleaseCapture(&capture1);
     
    }
    que donne quelque chose comme ça?
    ça fait la même chose que tout à l'heure c'est à dire qu'un carré gris "webcam" s'ouvre, puis au bout de 100 images (je l'ai réduit sinon c'est long) un screen est fait et est affiché dans les 2 fenêtres "webcam" et "test"

    PS : j'ai mis capture1 = cvCaptureFromCAM(-1); (sinon : > INFO : Camera error)
    et le cvWaitKey(); veut un chiffre. mais je l'ai retiré ^^

  15. #15
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    mmh si tu commentes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (count == 10000)
            {
                break;
            }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
        cvShowImage("test", img_temp);
    Ca donne quoi?

    Et oui, pour le cvWaitKey il veut un delay pendant lequel il va attendre une touche. 0 = inf
    PS: je vais finir par être obligé de tester moi même, à distance comme ça c'est dur , je vais faire ça avec une video
    =>
    OpenCv Addict

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    mmh si tu commentes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (count == 10000)
            {
                break;
            }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
        cvShowImage("test", img_temp);
    Ca donne quoi?

    Et oui, pour le cvWaitKey il veut un delay pendant lequel il va attendre une touche. 0 = inf

    et bien vu que count n'a plus de limite et bien ça ne s'arrête plus ^^
    "webcam" se lance avec un carré gris mais rien while tourne sans fin ^^

  17. #17
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    ok, j eteste avec ma video et je te dis
    =>
    OpenCv Addict

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Vinsss84 Voir le message
    ok, j eteste avec ma video et je te dis
    ok, ca roule
    merci

    par contre je voudrais aussi pouvoir piloter la résolution et les fps , mais il veut rien savoir non plus ^^

    sauf si j'utilise tout le truc avec camera init et camera start mais du coup je ne peux pas faire de screen

  19. #19
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    regarde ça, j'avais fait une modif du genre et ça marchait impec ensuite
    http://groups.yahoo.com/group/OpenCV/message/28735
    si t'as des questions je ferai appel à mes souvenirs
    =>
    OpenCv Addict

  20. #20
    Membre actif Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Points : 207
    Points
    207
    Par défaut
    sinon pour le probleme precedent dit moi si ça te convient
    appuie sur echap pour fermer les 2 fenetres a la fin
    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
    void on_capture_clicked (GtkButton *button, gpointer user_data)
    {
        /* Déclaration des variables */
        int count = 0;
        CvCapture *capture1;
        IplImage *img_temp = cvCreateImage(cvSize(640,480), 32  ,3);
        GtkWidget *image_capt = lookup_widget(GTK_WIDGET(button), "image_capt");
     
     
        /* Démarrage de la Caméra */
    	//init la capture
        capture1 = cvCaptureFromCAM(-1);
        if (!capture1) printf(" > INFO : Camera error\n");
    	//creation de la fenetre ds laquelle sera visualisée la vidéo
    	cvNamedWindow("Webcam",1);
    	IplImage * Image=NULL;
    	cvGrabFrame(capture1);
    	Image = cvRetrieveFrame(capture1);
     
    	while(1)
    	{
    		cvGrabFrame(capture1);
    	img_temp = cvRetrieveFrame(capture1);
    //	count++;
    	//if(img_temp == NULL) printf("ptain/n");
    	cvShowImage("Webcam",img_temp);
    	count++;
            /*if (count == 10000)
            {
                break;
            }*/
    	if (count == 100 || cvWaitKey(1) == 27 )
    		{
    			cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
    			cvShowImage("test", img_temp);
    			cvWaitKey(0);
    					break;
    		}
    	}
     
    	cvReleaseCapture(&capture1);
     
    }
    voilou
    l'appui sur echap commande egalement une prise de vue anticipée
    =>
    OpenCv Addict

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Faire fonctionner une caméra avec OpenCV 2.0
    Par Totocariolet dans le forum OpenCV
    Réponses: 10
    Dernier message: 05/05/2010, 15h48
  2. Impossible de faire une galerie avec des photos apparaissant en fondu
    Par daphpassion dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/03/2009, 19h46
  3. cmt se connecté a oracle pour faire une requete avec python
    Par dipajero dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 28/12/2005, 20h22
  4. Faire une JFrame avec LookAndFeel
    Par aburner dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/12/2003, 08h54

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