imageUri : 本地文件路径
imageUri : path to local file
我正在使用 python(jupyter 笔记本)
中的 requests.post 方法访问 google 愿景 api
在 imageUri 中我只能指定 weburl 或 bucket uri。我无法指定本地文件名,如“/Users/pi/test.jpg”
file_name = '/Users/mbp/Pictures/full moon.jpg'
data = {
"requests":[
{
"image":{
"source":{
"imageUri": file_name
}
},
"features":[
{
"type":"FACE_DETECTION",
"maxResults":1
}
]
}
]
}
r = requests.post(url=url,json=data)
x= json.loads(r.text)
print(x['responses'])
我得到的回复是:
[{'error': {'code': 3, 'message': 'image-annotator::Malformed request.: Unsupported URI protocol specified: /Users/mbp/Pictures/full moon.jpg'}}]
请帮忙
对于本地文件,您需要加载文件内容,对其进行编码,并将编码后的图像内容放在content
键下。有关详细信息,请参阅 here。有关 base64 编码的信息也在该页面上链接。
您的代码可以更新如下:
import base64
file_name = '/Users/mbp/Pictures/full moon.jpg'
with open(file_name, 'r') as image:
image_content = image.read()
encoded_content = base64.b64encode(image_content)
data = {
"requests":[
{
"image":{
"content": encoded_content
},
"features":[
{
"type":"FACE_DETECTION",
"maxResults":1
}
]
}
]
}
r = requests.post(url=url,json=data)
x = json.loads(r.text)
print(x['responses'])
或者您可以考虑使用客户端库;一些信息 here.
我正在使用 python(jupyter 笔记本)
中的 requests.post 方法访问 google 愿景 api在 imageUri 中我只能指定 weburl 或 bucket uri。我无法指定本地文件名,如“/Users/pi/test.jpg”
file_name = '/Users/mbp/Pictures/full moon.jpg'
data = {
"requests":[
{
"image":{
"source":{
"imageUri": file_name
}
},
"features":[
{
"type":"FACE_DETECTION",
"maxResults":1
}
]
}
]
}
r = requests.post(url=url,json=data)
x= json.loads(r.text)
print(x['responses'])
我得到的回复是:
[{'error': {'code': 3, 'message': 'image-annotator::Malformed request.: Unsupported URI protocol specified: /Users/mbp/Pictures/full moon.jpg'}}]
请帮忙
对于本地文件,您需要加载文件内容,对其进行编码,并将编码后的图像内容放在content
键下。有关详细信息,请参阅 here。有关 base64 编码的信息也在该页面上链接。
您的代码可以更新如下:
import base64
file_name = '/Users/mbp/Pictures/full moon.jpg'
with open(file_name, 'r') as image:
image_content = image.read()
encoded_content = base64.b64encode(image_content)
data = {
"requests":[
{
"image":{
"content": encoded_content
},
"features":[
{
"type":"FACE_DETECTION",
"maxResults":1
}
]
}
]
}
r = requests.post(url=url,json=data)
x = json.loads(r.text)
print(x['responses'])
或者您可以考虑使用客户端库;一些信息 here.