gpt4 book ai didi

python - 如何从 s3 下载图像作为 numpy 数组?

转载 作者:行者123 更新时间:2023-11-30 22:54:09 26 4
gpt4 key购买 nike

我正在尝试训练一个神经网络,在其中传递一系列图像。我想创建一个生成器,将每个图像作为 numpy 数组传递

from skimage import io
image_array = io.imread(url)

我想要这样的东西:

s3 = boto3.resource('s3')
my_bucket = s3.Bucket('some-bucket')
def my_generator():
for object in my_bucket.objects.all():
image_array = io.imread(object) # this will not work. object is of type s3.ObjectSummary(bucket_name='manga-learn-data', key=u'one-piece-colored-5340113_06_05.png') whereas io.imread is expecting a url or uri.
yield image_array

但是 image_array 变量永远不会起作用。我能找到的有关从 amazon s3 下载图像的所有内容都表明您将文件下载到文件中。我想将其下载到可以作为数组打开的图像对象。

最佳答案

基于docs for imread ,看来它只支持传入文件名或URL。所以没有类似文件的对象。所以看起来你有两个选择:保存到临时文件,或 generate a presigned url传入。以下是生成预签名 URL 的示例:

import boto3

s3 = boto3.client('s3')
params = {'Bucket': 'foo', 'Key': 'img.jpg'}
url = s3.generate_presigned_url(ClientMethod='get_object', Params=params)

关于python - 如何从 s3 下载图像作为 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933398/

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