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

GTK+ avec C & C++ Discussion :

Video opencv avec gtk


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Video opencv avec gtk
    Bonjour,

    Je cherche a avoir une vidéo dans une interface gtk. J'arrive a faire la conversion, mais je n'arrive pas a avoir plusieurs images de d'affilées.
    Le code est la :

    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
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include <OpenCV/highgui.h>
    #include <OpenCV/cv.h>
     
    GtkWidget			*window = NULL;
     
    GtkImage			*image_from_ocv(IplImage * img, int dst_w, int dst_h)
    {
    	GtkImage		*image = NULL;
        GdkPixbuf		*pix_src, *pix_dst;
     
        pix_src = gdk_pixbuf_new_from_data((guchar*)img->imageData, GDK_COLORSPACE_RGB, FALSE, 8, img->width, img->height, img->widthStep, NULL, NULL);
        pix_dst = gdk_pixbuf_scale_simple(pix_src, dst_w, dst_h, GDK_INTERP_BILINEAR);
    	image = (GtkImage*)gtk_image_new_from_pixbuf(pix_dst);
    	g_object_unref(pix_src);
    	g_object_unref(pix_dst);
        return image;
    }
     
    void				display_image(gpointer capture)
    {
    	IplImage		*ocv_image = NULL;
    	GtkImage		*gtk_image = NULL;
     
    	if (!(ocv_image = cvQueryFrame(capture)))
    		exit(-1);
    	cvConvertImage(ocv_image, ocv_image, CV_CVTIMG_SWAP_RB);
    	gtk_image = image_from_ocv(ocv_image, window->allocation.width, window->allocation.height);
    	gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(gtk_image));
    	gtk_widget_show(GTK_WIDGET(gtk_image));
    }
     
    int					main(int argc, char **argv)
    {
    	CvCapture		*capture = NULL;
     
    	gtk_init(&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    	gtk_window_set_default_size(GTK_WINDOW(window), 500, 500);
    	g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    	gtk_widget_show(window);
    	if (!(capture = cvCreateCameraCapture(0)))
    		return (EXIT_FAILURE);
    	g_timeout_add(100, display_image, capture);
    	gtk_main();
        return EXIT_SUCCESS;
    }
    Même si je gtk_container_remove après gtk_widget_show(GTK_WIDGET(gtk_image)).. plus rien ne s'affiche.

    Je ne sais pas pourquoi ça fait ça. Pourtant la logique est bonne non ?
    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Bonjour,
    juste une remarque : il y a plus de chances d'avoir une réponse si tu postes avec une indentation correcte. En l'état, c'est illisible. Utilise des tabulations ou des espaces, mais évite le mélange des deux.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

Discussions similaires

  1. Problème avec opencv et gtk
    Par nogard dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 06/06/2011, 21h25
  2. Probleme avec opencv et gtk
    Par nogard dans le forum Windows
    Réponses: 0
    Dernier message: 05/06/2011, 19h51
  3. flux video audio => socket + gtk+ ou sdl + opencv
    Par quark22 dans le forum Réseau
    Réponses: 3
    Dernier message: 03/09/2010, 17h05
  4. afficher de video avec gtk+
    Par asma.r dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 13/08/2009, 17h58
  5. Faire une photo avec OpenCV et GTK
    Par ninours23 dans le forum OpenCV
    Réponses: 24
    Dernier message: 06/02/2008, 15h46

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