Cet article est un exemple de code et une explication sur l'utilisation de l'API Google Cloud Vision. Cet exemple de code est censé être utilisé en important avec un autre code Python.
Si vous voulez vérifier l'opération par elle-même, décommentez la partie ci-dessous ## main et effectuez le test unitaire.
Tout d'abord, vous devez obtenir la clé API de l'API Google Cloud Vision pour exécuter cet exemple. En outre, enregistrez l'image d'exemple que vous souhaitez analyser en tant que data / sample.png dans la même hiérarchie que le programme à préparer et à exécuter à l'avance.
Lorsque ce code est exécuté, les données d'image sont envoyées à l'API Google Cloud Vision, le résultat renvoyé s'affiche à l'écran et la valeur de description est enregistrée dans tmp.
En tant qu'application, vous pouvez vérifier si la différence s'est produite en renvoyant True uniquement si la valeur JSON renvoyée par la méthode update_json_file est différente. Avec cette valeur, vous pouvez l'utiliser comme un robot et marmonner comme Twitter, Line ou Slack.
googlecv.py
# -*- coding: utf-8 -*-
import requests
import json
import base64
import os
GOOGLE_CLOUD_VISION_API_URL = 'https://vision.googleapis.com/v1/images:annotate?key='
API_KEY = 'YOUR-GOOGLE-CLOUD-VISION-API-KEY'
def goog_cloud_vison (image_content):
api_url = GOOGLE_CLOUD_VISION_API_URL + API_KEY
req_body = json.dumps({
'requests': [{
'image': {
'content': image_content
},
'features': [{
'type': 'LABEL_DETECTION',
'maxResults': 10,
}]
}]
})
res = requests.post(api_url, data=req_body)
return res.json()
def img_to_base64(filepath):
with open(filepath, 'rb') as img:
img_byte = img.read()
return base64.b64encode(img_byte)
def get_descs_from_return(res_json):
labels = res_json['responses'][0]['labelAnnotations']
descs = []
for value in labels:
descs.append(value['description'])
return json.dumps(descs)
def update_json_file(json_desc):
fname = '/tmp/descs.json'
if os.path.isfile(fname)==True:
with open('/tmp/descs.json', 'r') as f:
f_desc = json.load(f)
else:
f_desc = ''
if json_desc != f_desc:
with open('/tmp/descs.json', 'w') as f:
json.dump(json_desc, f, sort_keys=True, indent=4)
return True
else:
return False
##
## main
##
#dir = os.path.dirname(os.path.abspath(__file__))
#filename = os.path.join(dir, 'data', 'sample.png')
#print filename
#img = img_to_base64(filename)
#res_json = goog_cloud_vison(img)
#json_desc = get_descs_from_return(res_json)
#print json_desc
#update_json_file(json_desc)
Recommended Posts