1

我目前正在从我的学校系统访问一个 s3 存储桶。
为了连接,我使用了以下内容:

import s3fs
from skimage import exposure
from PIL import Image, ImageStat

s3 = s3fs.S3FileSystem(client_kwargs={'endpoint_url': 'XXX'},
                       key='XXX',
                       secret='XXX')

我可以从上面定义的 s3 存储桶中检索图像并使用预处理它们

infile = s3.open('test.jpg',"rb")
image = Image.open(infile)
img = np.asarray(image) #numpy.ndarray
img_eq = exposure.equalize_adapthist(img,clip_limit=0.03) #CLAHE
image_eq = Image.fromarray((img_eq * 255).astype(np.uint8)) #Convert back to image

要将生成的图像 <image_eq> 保存在本地,只需

image_eq.save("hello.jpg")

但是,如何将生成的图像保存/写入 s3fs 文件系统?

4

1 回答 1

0

savein Pillow 也接受文件。你可以这样做:

 image_eq.save(fs.open('s3://bucket/file.png', 'wb'), 'PNG')

您必须编写一个二进制文件。我认为通过强制执行文件类型效果最好,例如在这种情况下为 PNG。

于 2021-03-30T11:16:10.783 回答