2009-07-27 46 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); 
相關問題