根据我的理解,我认为您想通过python-opencv2 的方法cv2.imread 获取来自Azure Blob 存储的图像的灰度数据。
我尝试使用azure-storage==0.20.3 包编写一个python 脚本来完成它。这是我的示例代码,如下所示。
from azure.storage.blob import BlobService
import numpy
import cv2
service = BlobService(account_name='<your storage account name>', account_key='<your storage account key>')
blob = service.get_blob_to_bytes('mycontainer', 'test.jpg')
print type(blob)
np_array = numpy.fromstring(blob, numpy.uint8)
print np_array
img = cv2.imdecode(np_array, cv2.CV_LOAD_IMAGE_COLOR)
如果使用最新的azure-storage 包,请确保使用如下代码。
from azure.storage.blob import BlockBlobService
service = BlockBlobService(account_name='<your storage account name>', account_key='<your storage account key>')
上面的代码在本地环境中运行良好,但它不能作为 Azure ML Studio 的 Experiments 上的 Execute Python Script 模块运行,因为缺少所需的 Python 包 azure-storage 和 cv2。然后我尝试按照文档Adding Python Script as a Custom Resource添加这些包,但是我没有意识到python-opencv2包依赖于C原生库opencv2。
所以根据我的经验,我认为简单的解决方法是使用来自OpenCV Library Modules 的Import Images 模块的dataframe 中的RGB 数据计算灰度数据。
希望对你有帮助。