如何对 Google 云存储中存储的文件使用 cv2.imread?

How do I use cv2.imread on a file stored in Google Cloud Storage?

假设我在 google 云存储 gs://example-bucket/testing_data

上的以下 URL 存储了一张名为 sunset.jpg 的图片

所以图片的完整 URL 是:

gs://example-bucket/testing_data/sunset.jpg

如果我然后做类似的事情:

image = cv2.imread('gs://example-bucket/testing_data/sunset.jpg')

但是虽然这不会崩溃或失败,但不会加载任何图像。我如何access/provide对URL到cv2.imread做到这一点??

import cv2
import numpy as np
import urllib

url = "https://i.stack.imgur.com/AVWX7.jpg";
resp = urllib.urlopen(url)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)

将 gs 转换为普通 URL。

bucket = 'example-bucket'
file = 'sunset.jpg'

gcs_url = 'https://%(bucket)s.storage.googleapis.com/%(file)s' % {'bucket':bucket, 'file':file}

print gcs_url