Dieser Artikel enthält einen Beispielcode und eine Erklärung zur Verwendung der Google Cloud Vision-API. Dieser Beispielcode soll durch Importieren mit anderem Python-Code verwendet werden.
Wenn Sie den Vorgang selbst überprüfen möchten, kommentieren Sie den Teil unter ## main aus und führen Sie den Komponententest durch.
Zunächst müssen Sie den API-Schlüssel der Google Cloud Vision-API abrufen, um dieses Beispiel ausführen zu können. Speichern Sie außerdem das Beispielbild, das Sie analysieren möchten, als data / sample.png in derselben Hierarchie wie das Programm, das im Voraus vorbereitet und ausgeführt werden soll.
Wenn dieser Code ausgeführt wird, werden die Bilddaten an die Google Cloud Vision-API gesendet, das zurückgegebene Ergebnis wird auf dem Bildschirm angezeigt und der Beschreibungswert wird in tmp gespeichert.
Als Anwendung können Sie überprüfen, ob der Unterschied aufgetreten ist, indem Sie True nur zurückgeben, wenn der von der update_json_file-Methode zurückgegebene JSON-Wert unterschiedlich ist. Mit diesem Wert können Sie ihn als Bot verwenden und wie Twitter, Line oder Slack murmeln.
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