从Raspberry Pi相机快速显示图像到tkinter画布

时间:2016-01-28 04:22:51

标签: python tkinter raspberry-pi

我目前正在尝试创建一个"流"从Raspberry Pi相机中将其显示在tkinter画布上。为此,我正在捕获图像,保存图像,将图像加载到tkinter,以及将图像显示在画布上。没有保存和装载部分,有没有办法做到这一点?注意:我必须使用画布,因为我使用其几何绘图功能在加载的图像上绘制圆和线。这是我目前的代码:

camera.capture(self.liveStreamName, resize = (485,485))
self.C.delete(self.canvasImage)
self.DisplayImg = tkinter.PhotoImage(file = self.liveStreamName)
self.C.create_image(242.5,242.5,image = self.DisplayImg)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

阅读文档。

-

Tkinter可以使用PIL/pillow模块,该模块具有函数fromstringfrombufferfrombytes,可以从内存中的数据创建图像。

枕头:http://pillow.readthedocs.org/en/3.1.x/reference/Image.html#functions

Tkinter:http://effbot.org/tkinterbook/photoimage.htm

-

捕获:http://picamera.readthedocs.org/en/release-1.10/api_camera.html#picamera.camera.PiCamera.capture

您可以使用类似文件的对象代替文件名。也许您可以使用StringIOByteIO模块(Python 3中的IO)在内存中创建类似文件的对象,并将其与frombuffer一起使用。

但也许相机具有to_stringto_arrayto_buffer等功能,您可以将它与fromstringfromarrayfrombuffer一起使用StringIO

-

见picamera.ar​​ray:http://picamera.readthedocs.org/en/release-1.10/api_array.html

-

所以现在......阅读文档;)祝你好运。