使用python和OpenCV加载上传的图像而不保存到HDD

时间:2013-10-23 21:08:36

标签: python opencv flask

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

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

1 个答案:

答案 0 :(得分: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可以处理任意类文件对象,而不仅仅是表示真实文件的对象。