之前研究过OpenCV与Qt结合使用,毕设要用的Intel Joule开发板上安装Qt较为困难,不过它自带了GTK+3.0 GUI框架,于是研究了下是否可以在GTK+中显示OpenCV的图片,折腾了一下发现是可行的,记录一下方法。
OpenCV默认的imshow
似乎使用的就是GTK+框架,在GTK中显示图片的方法参考以下这篇教程:
可以看到,GTK中的图片是使用GdkPixbuf
结构体来保存的,而OpenCV 3.x中使用Mat
类来保存图片,所以只要实现Mat
到GdkPixbuf
的转换即可在GTK中显示图片了,实现代码如下:
1 | Mat Image; |
关于gdk_pixbuf_new_from_data()
及GdkPixbuf
的详细说明参见:
参考资料:
How can I display an OpenCV IplImage in Gtk+/Gtkmm?
Converting cv::Mat to IplImage*