You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP技术问询:如何用Python将GCS图片读取至Datalab的OpenCV

在Datalab中从GCS读取图片到OpenCV的方法

我之前处理GCS图片时也碰到过类似的困惑,毕竟大部分资料都聚焦在文本文件的读取上。其实有两种实用的方案可以解决这个问题,下面给你一步步说明:

方法一:通过临时文件中转读取

这个方法比较直观,先把GCS上的图片下载到Datalab的临时文件里,再用OpenCV读取,适合新手快速上手:

  1. 首先确保安装了GCS的Python客户端库(如果还没装的话):
!pip install google-cloud-storage
  1. 编写代码实现读取:
from google.cloud import storage
import cv2
import numpy as np
import tempfile
import os

# 初始化GCS客户端
storage_client = storage.Client()

# 替换成你的bucket名称和图片路径
bucket_name = "your-gcs-bucket"
image_blob_path = "images/sample.jpg"

# 获取GCS中的图片对象
bucket = storage_client.get_bucket(bucket_name)
image_blob = bucket.blob(image_blob_path)

# 创建临时文件存储下载的图片
with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as temp_img_file:
    image_blob.download_to_file(temp_img_file)
    temp_file_path = temp_img_file.name

# 用OpenCV读取临时文件
img = cv2.imread(temp_file_path)

# 在Datalab中显示图片(如果是兼容Colab的环境,用cv2_imshow;否则用matplotlib)
from google.colab.patches import cv2_imshow
cv2_imshow(img)

# 手动清理临时文件(可选,临时文件在会话结束后会自动删除)
os.unlink(temp_file_path)

方法二:直接读取字节流(更高效)

如果不想生成临时文件,可以直接把GCS图片的字节内容读取到内存,再转换成OpenCV能识别的格式,这个方法更适合批量处理图片的场景:

from google.cloud import storage
import cv2
import numpy as np

# 初始化客户端
storage_client = storage.Client()
bucket_name = "your-gcs-bucket"
image_blob_path = "images/sample.jpg"

# 获取图片blob并读取字节内容
bucket = storage_client.get_bucket(bucket_name)
image_blob = bucket.blob(image_blob_path)
image_byte_data = image_blob.download_as_bytes()

# 将字节数据转换成numpy数组,再用OpenCV解码
image_np = np.frombuffer(image_byte_data, dtype=np.uint8)
img = cv2.imdecode(image_np, cv2.IMREAD_COLOR)

# 显示图片(如果不用cv2_imshow,也可以用matplotlib)
import matplotlib.pyplot as plt
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))  # OpenCV默认是BGR格式,要转成RGB适配matplotlib
plt.axis("off")
plt.show()

注意事项

  • 权限问题:确保Datalab使用的服务账号拥有GCS存储桶的storage.objects.get权限,否则会出现访问被拒绝的错误。
  • 图片格式:如果你的图片是PNG、JPEG以外的格式,记得调整cv2.imdecode的参数,比如cv2.IMREAD_UNCHANGED来保留透明通道。

内容的提问来源于stack exchange,提问作者user1058210

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:47:35