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?
2
A
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);
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