【问题标题】:Importing images Azure Machine Learning Studio导入图像 Azure 机器学习工作室
【发布时间】:2017-06-24 04:28:58
【问题描述】:

是否可以从 Python 脚本模块中的 Azure 存储帐户导入图像,而不是使用 Azure ML Studio 提供的导入图像模块。理想情况下,我想使用cv2.imread()。我只想读取灰度数据,但 Import Images 模块读取 RGB。 我可以像从外部 Python 脚本调用它一样使用 BlockBlobService 库吗?

【问题讨论】:

    标签: python azure azure-blob-storage azure-machine-learning-studio


    【解决方案1】:

    根据我的理解,我认为您想通过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-storagecv2。然后我尝试按照文档Adding Python Script as a Custom Resource添加这些包,但是我没有意识到python-opencv2包依赖于C原生库opencv2

    所以根据我的经验,我认为简单的解决方法是使用来自OpenCV Library ModulesImport Images 模块的dataframe 中的RGB 数据计算灰度数据。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      是的,您应该能够使用 Python 做到这一点。至少,直接的 REST 调用应该可以工作。

      【讨论】:

      • 有没有可以参考的例子?