2009-07-27 9 views
2

Ich habe Bilder wie IplImage, die ich in einer kleinen Gtkmm-Anwendung anzeigen möchte. Wie kann ich sie in etwas konvertieren, das Gtk anzeigen kann?Wie kann ich ein OpenCV IplImage in Gtk +/Gtkmm anzeigen?

+0

Da Sie es sich gelöst, es ist wahrscheinlich am besten, um die Lösung in einer Antwort Post zu kopieren, und wählen Sie dann die Antwort als akzeptierte Lösung. – Catskul

Antwort

1

Sie können einen neuen Pixbuf erstellen, indem Sie gdk_new_pixbuf_from_data() die Bildformatparameter übergeben, die dem Format von IplImage entsprechen. Auf die IplImage-Bilddaten wird über das Feld imageData zugegriffen.

Hier sind einige example code von einem Gtk-Forum.

+0

Danke, funktioniert super. Ich habe es modifiziert, um mehr Gtkmm Stil zu sein. – bseibold

3

Veröffentlichung OP-Lösung als Antwort:

IplImage* image; 
cvCvtColor(image, image, CV_BGR2RGB); 
Glib::RefPtr<Gdk::Pixbuf> pixbuf = Gdk::Pixbuf::create_from_data(
     (guint8*)image->imageData, 
     Gdk::COLORSPACE_RGB, 
     false, 
     image->depth, 
     image->width, 
     image->height, 
     image->widthStep); 

Gtk::Image gtk_img; 
gtk_img.set(pixbuf);