我在發送到Google Cloud Vision的base64編碼圖像時遇到問題。有趣的是,如果我通過URI發送圖像,它可以正常工作,所以我懷疑我編碼的方式有什麼問題。Google雲視覺不接受base64編碼圖像python
這裏的交易:
from google.cloud import vision
import base64
client = vision.ImageAnnotatorClient()
image_path ='8720911950_91828a2aeb_b.jpg'
with open(image_path, 'rb') as image:
image_content = image.read()
content = base64.b64encode(image_content)
response = client.annotate_image({'image': {'content': content}, 'features': [{'type': vision.enums.Feature.Type.LABEL_DETECTION}],})
print(response)
我總是得到的迴應是:
error {
code: 3
message: "Bad image data."
}
如果我嘗試使用URI來代替:
response = client.annotate_image({'image': {'source': {'image_uri': 'https://farm8.staticflickr.com/7408/8720911950_91828a2aeb_b.jpg'}}, 'features': [{'type': vision.enums.Feature.Type.LABEL_DETECTION}],})
響應是確定...
label_annotations {
mid: "/m/0168g6"
description: "factory"
score: 0.7942917943000793
}
label_annotations {
mid: "/m/03rnh"
description: "industry"
score: 0.7761002779006958
}
我跟着recommended way to encode從谷歌
任何想法,這裏有什麼問題?
Base64!= 64位。這些是非常不同的事情。 – Thomas
嘗試'含量= base64.b64encode(image_content).decode()' – Leon
@Leon我得到這個 「類型錯誤:「/ 9J/4AAQSkZJRgABAQEA8ADwAAD/4gJASUNDX1BST0ZJTEUAAQEAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAAB具有類型海峽,但預期中的一種:字節 」 – AlejandroVK