【问题标题】:Read and write images from GCS via python (Flask)通过python(Flask)从GCS读取和写入图像
【发布时间】:2022-01-06 02:00:36
【问题描述】:

在本地机器中,我可以提取图像的特征并将相应的 .npy 文件存储在不同的文件夹中。

from PIL import Image
from feature_extractor import FeatureExtractor
from pathlib import Path
import numpy as np

if __name__ == '__main__':
    fe = FeatureExtractor()

    for img_path in sorted(Path("./static/img").glob("*.jpg")):
        print(img_path)  # e.g., ./static/img/xxx.jpg
        feature = fe.extract(img=Image.open(img_path))
        feature_path = Path("./static/feature") / (img_path.stem + ".npy")  # e.g., ./static/feature/xyz.npy
        np.save(feature_path, feature)

现在我想在谷歌云中托管它。但为此,我需要从 Google Cloud Storage 读取和写入图像。有没有类似 Path for GCS 的库?

【问题讨论】:

    标签: python google-cloud-storage


    【解决方案1】:

    这里有官方的客户端库 pip install --upgrade google-cloud-storage

    见:https://cloud.google.com/storage/docs/reference/libraries#client-libraries-install-python


    编辑: 来源:https://stackoverflow.com/a/22399617/7888973

    如果您想在 GCS 存储桶中列出苍蝇:

    from google.cloud import storage
    
    client = storage.Client()
    for blob in client.list_blobs('bucketname', prefix='abc/myfolder'):
      print(str(blob))
    

    【讨论】:

    • 我尝试使用这个库 (google-cloud-storage) 但无法解决这个问题。我能够连接 GCS,但我必须先下载图像,然后上传特征数组。
    • 我不知道 FeatureExtractor.extract 究竟是如何工作的,但我想你需要在你的机器上拥有图像才能计算它。所以你必须先下载它,然后解压然后再上传.npy。
    • 如果你问如何使用 python 从 GCS 下载和上传:查看官方 GCS python lib GitHub 示例用法:github.com/googleapis/python-storage/#example-usage ||| |1。检索现有存储桶 (bucket = client.get_bucket('bucket-id')) |2。下载原始文件 (blob = bucket.get_blob('remote/path/filename.img')) |3. FeatureExtractor.extract |4。上传 npy 文件到 GCS (new_blob = bucket.blob('remote/path/filename.npy')new_blob.upload_from_filename(filename='/local/path/filename.npy'))
    • 是的。我也在尝试这种方法。我也能够读取图像并提取特征。现在,我在 GSC 中上传 .npy 文件时遇到问题。让我们看看。
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多