gpt4 book ai didi

python - 有没有一种方法可以在不先保存到文件的情况下操作图像?

转载 作者:行者123 更新时间:2023-12-05 03:35:29 24 4
gpt4 key购买 nike

我正在尝试为我的 ML/DL 项目收集 img 数据。

我需要面部数据,所以我必须检测面部并在其周围裁剪。

我有一堆我在网上搜索的 img 网址。

通常我会使用请求库将它们保存在文件中,但是否可以在内存中进行?

response = requests.get(IMG_URL)
img_byte = response.content
# Do image processing without saving to a file

我查看了一些 python 中的图像库,例如 PIL 或 OpenCV,

但他们似乎都首先从文件中加载图像。

如果我不保存临时文件,我想我可以加快这个过程。 (I/O是个大瓶颈)

我尝试使用 BytesIO 函数,但我无法弄明白。

最佳答案

BytesIO 是要走的路!。您可以将请求返回的二进制数据存储到 In-memory byte buffer(BytesIO)并将其传递给 Image.open

>>> from PIL import Image
>>> from io import BytesIO
>>> img_obj = Image.open(BytesIO(r.content))

Image.open API 的唯一要求fp 参数必须是文件名(字符串)、pathlib.Path 对象或文件对象。文件对象必须实现file.readfile.seekfile.tell方法,并以二进制方式打开.

BytesIO实现所有这些方法。

>>> from io import BytesIO
>>>
>>> buffer = BytesIO()
>>> hasattr(buffer, 'read') and hasattr(buffer, 'tell') and hasattr(buffer, 'seek')
True

关于python - 有没有一种方法可以在不先保存到文件的情况下操作图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69850919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com