いくつかの画像を含む Azure BLOB ストレージ アカウントを持っています。画像処理用にバイトとして読み込みたいので、MicrosoftのFace APIで使えるようにします。「Bytes」オブジェクトが必要であることを示すエラー メッセージが表示されますが、既にイメージを blob からバイト形式に変換していると思いました。使用したコード全体を提供しましたが、問題はコードの最後のチャンクに起因します
%matplotlib inline
import matplotlib.pyplot as plt
import io
from io import StringIO
import numpy as np
import cv2
from PIL import Image
#from StringIO import StringIO
from PIL import Image
import os
from array import array
私の資格情報:
azure_storage_account_name = 'musicsurveyphotostorage'
azure_storage_account_key = None # dont need key... we will access public
blob...
if azure_storage_account_name is None:
raise Exception("You must provide a name for an Azure Storage account")
from azure.storage.blob import BlockBlobService
blob_service = BlockBlobService(azure_storage_account_name,
azure_storage_account_key)
BLOB ストレージ コンテナーを選択する
#select container (folder) name where the files resides
container_name = 'musicsurveyphotostorage'
#list files in the selected folder
generator = blob_service.list_blobs(container_name)
blob_prefix = 'https://{0}.blob.core.windows.net/{1}/{2}'
画像をロードしています..エラーは、次のコードブロックから発生します。
# load image file to process
blob_name = 'shiba.jpg' #name of image I have stored
blob = blob_service.get_blob_to_bytes(container_name, blob_name)
image_file_in_mem = io.BytesIO(blob)
img_bytes = Image.open(image_file_in_mem)
私が得るエラーメッセージは次のとおりです。
TypeError Traceback (most recent call last)
<ipython-input-13-6738e5733c01> in <module>()
36 blob_name = 'shiba.jpg' #name of image I have stored
37 blob = blob_service.get_blob_to_bytes(container_name, blob_name)
**---> 38 image_file_in_mem = io.BytesIO(blob)**
39 img_bytes = Image.open(image_file_in_mem)
TypeError: a bytes-like object is required, not 'Blob'