我目前正在尝试创建一个"流"从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)
有什么想法吗?
答案 0 :(得分:0)
阅读文档。
-
Tkinter可以使用PIL/pillow
模块,该模块具有函数fromstring
,frombuffer
,frombytes
,可以从内存中的数据创建图像。
枕头: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
您可以使用类似文件的对象代替文件名。也许您可以使用StringIO
或ByteIO
模块(Python 3中的IO
)在内存中创建类似文件的对象,并将其与frombuffer
一起使用。
但也许相机具有to_string
,to_array
,to_buffer
等功能,您可以将它与fromstring
,fromarray
或frombuffer
一起使用StringIO
。
-
见picamera.array:http://picamera.readthedocs.org/en/release-1.10/api_array.html
-
所以现在......阅读文档;)祝你好运。