2009-07-27 90 views
2

我已经有了IplImage的图像,我想在一个小的Gtkmm应用程序中显示。我如何将它们转换为Gtk可以显示的内容?如何在Gtk +/Gtkmm中显示OpenCV IplImage?

+0

既然你自己解决了这个问题,它可能是最好的解决方案复制到答案后,再选择的答案,作为接受的解决方案。 – Catskul 2012-05-14 16:29:37

回答

1

您可以使用gdk_new_pixbuf_from_data()创建一个新的pixbuf,将它传递给对应于IplImage格式的图像格式参数。 IplImage图像数据通过imageData字段访问。

以下是来自Gtk论坛的一些example code

+0

谢谢,效果很好。我将其修改为更多Gtkmm风格。 – bseibold 2009-08-08 17:06:40

3

发布OP的解决方案,回答:

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);