1

我正在我的 Flask 框架应用程序中上传文件。该文件是我想通过 OpenCV(在 python 中)处理的图像。首先将此上传的文件保存到硬盘,会减慢整个操作(使用 OpenCV 保存和加载图像的额外时间)。

是否可以直接从 Werkzeug FileStorage 对象(内存)加载图像?

4

1 回答 1

2

编辑:我认为您可以将其FileStorage.stream用作 OpenCV 逻辑的输入——它是一个类似对象的文件;如果这不起作用,请参见下文。(见werkzeug.datastructures.FileStorage.stream

由于FileStorage它本身似乎不是一个类似文件的对象,你可以做的就是save()把它变成一个:

from cStringIO import StringIO
inmem_file = StringIO()
file_storage.save(inmem_file)  # save to memory
inmem_file.reset()  # seek back to byte 0, otherwise .read() will return ''
use_with_open_cv(inmem_file)

这是假设 OpenCV 可以处理任意的类文件对象,而不仅仅是代表真实文件的对象。

于 2013-10-23T21:13:50.687 回答