我正在使用Python和Glade-3制作实时视频GUI,但是我发现很难将我已经创建的Numpy数组转换为可以在Glade中显示的东西。图像是黑色和白色,只有一个值可以给出每个像素的亮度。我希望能够在GUI中绘制图像,因此我不知道是否应该使用特定的格式(位图/像素图等)?如何在glade-3中显示2D numpy数组?
任何帮助将不胜感激!
我正在使用Python和Glade-3制作实时视频GUI,但是我发现很难将我已经创建的Numpy数组转换为可以在Glade中显示的东西。图像是黑色和白色,只有一个值可以给出每个像素的亮度。我希望能够在GUI中绘制图像,因此我不知道是否应该使用特定的格式(位图/像素图等)?如何在glade-3中显示2D numpy数组?
任何帮助将不胜感激!
在最后,我决定以产生用于像素的缓冲器使用:
self.pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,0,8,1280,1024)
self.liveImage.set_from_pixbuf(self.pixbuf)
我觉得这些步骤需要:
scipy.misc.toimage
到您的数组转换成PIL图像gdk_pixbuf_get_from_surface
将其转换为pixbuf(我不知道它的名称是在python api中)Gtk.Image.new_from_pixbuf
对不起,它需要很多转换步骤。
你也许可以使一些通过写一个函数来你的数组转换成开罗质地更好:我再从像素缓冲器中设置的图像。这可能会涉及更多的努力,但数百人会感谢你;-) – ptomato
是的,我读了很多关于开罗纹理,但我从来没有真正使用它们。 – user1696811