python - 将数据从 Google 存储桶读取到阵列
问题描述
如果我想从 Google Cloud Storage 存储桶(而不是本地存储)中读取数据并将其放入类似于此函数的数组中,如何替换此函数?
def load_data(img_dir):
return np.array(
[cv2.imread(os.path.join(img_dir, img), 0).flatten() for img in os.listdir(img_dir) if img.endswith(".jpg")])
解决方案
您需要使用 OpenCV 的imdecode
函数以及google-cloud-storage
包:
from google.cloud import storage
import numpy as np
import cv2
def load_data(bucket_name):
bucket = storage.Client().get_bucket(bucket_name)
return np.array(
cv2.imdecode(
np.asarray(bytearray(blob.download_as_string()), dtype=np.uint8), 0
).flatten()
for blob in bucket.list_blobs()
if blob.name.endswith(".jpg")
)
推荐阅读
- powershell - 将 PSCustomObjects 拆分为字符串/数组
- html - Bootstrap 5 - 在保持行的同时具有自动宽度的列
- asp.net - 如何在 ASP.NET 中构建 JavaScript uglify 文件并将其打包到 Docker 映像中
- typescript - 我如何自定义 VS Code 悬停智能感知/推断包装功能
- python - Python:你能用存储在变量中的值命名一个对象吗?
- java - Spring Boot 2.5.0 生成 plain.jar 文件。我可以删除它吗?
- python - Pandas - 绘制 P1D 时间间隔
- c# - 带有 Uno 平台应用程序的 Socket Err 10013
- python - 球碰撞代码不起作用,球粘在一起
- gcc - 为什么在尝试配置 make 时出现此错误?