如何在 Gtk+/Gtkmm 中显示 OpenCV IplImage?

发布于 2024-07-29 22:35:28 字数 70 浏览 5 评论 0原文

我有 IplImage 形式的图像,我想在小型 Gtkmm 应用程序中显示它们。 如何将它们转换为 Gtk 可以显示的内容?

I've got images as IplImage that I want to display in a small Gtkmm application. How can I convert them to something Gtk can display?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少女的英雄梦 2024-08-05 22:35:28

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

Posting OP's solution as answer:

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);
橘虞初梦 2024-08-05 22:35:28

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

这里有一些来自 Gtk 论坛的示例代码

You can create a new pixbuf using gdk_new_pixbuf_from_data() passing it the image format parameters corresponding to the format of the IplImage. The IplImage image data is accessed via the imageData field.

Here is some example code from a Gtk forum.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文