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

时间:2017-05-26 23:05:55

标签: google-cloud-platform google-cloud-storage google-cloud-datalab

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

上有一张名为sunset.jpg的图片存储在以下网址

所以图片的完整网址是:

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

如果我那么做:

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

但是,虽然没有崩溃或失败但没有加载图像。如何访问/提供正确的URL到cv2.imread来执行此操作?

1 个答案:

答案 0 :(得分:1)

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转换为普通网址。

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

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

print gcs_url