如果我想要从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")])
发布于 2018-09-06 16:08:56
您需要使用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")
)
https://stackoverflow.com/questions/52206453
复制