Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何在Gtk+/Gtkmm?_Image Processing_Gtk_Opencv_Gtkmm - Fatal编程技术网

Image processing 如何在Gtk+/Gtkmm?

Image processing 如何在Gtk+/Gtkmm?,image-processing,gtk,opencv,gtkmm,Image Processing,Gtk,Opencv,Gtkmm,我想在一个小的Gtkmm应用程序中显示图像作为IplImage。如何将它们转换为Gtk可以显示的内容?您可以使用gdk\u new\u pixbuf\u from_data()向其传递与IplImage格式对应的图像格式参数来创建新的pixbuf。IplImage图像数据通过imageData字段访问 以下是来自Gtk论坛的一些信息。将OP的解决方案作为答案发布: IplImage* image; cvCvtColor(image, image, CV_BGR2RGB); Glib::RefPt

我想在一个小的Gtkmm应用程序中显示图像作为IplImage。如何将它们转换为Gtk可以显示的内容?

您可以使用
gdk\u new\u pixbuf\u from_data()
向其传递与IplImage格式对应的图像格式参数来创建新的pixbuf。IplImage图像数据通过
imageData
字段访问


以下是来自Gtk论坛的一些信息。

将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);
IplImage*图像;
CVT颜色(图像、图像、CV_BGR2RGB);
Glib::RefPtr pixbuf=Gdk::pixbuf::从_数据创建_(
(guint8*)图像->图像数据,
Gdk::颜色空间_RGB,
假,,
图像->深度,
图像->宽度,
图像->高度,
图像->宽度步长);
Gtk::图像Gtk_img;
gtk_图像集(pixbuf);

既然您自己解决了这个问题,那么最好将答案复制到答题帖中,然后选择该答案作为可接受的答案。