json型で返された結果から読み取り座標値を読み取って対象の画像に四角いマーキングを
したいと思っているのですが座標値の取り方がいまいちわかりません。
不勉強で申し訳ありませんがどなたかご教示いただけますと幸いです。
下記コードとなります。
python
1import requests 2import base64 3import json 4 5GOOGLE_CLOUD_VISION_API_URL = 'https://vision.googleapis.com/v1/images:annotate?key=' 6API_KEY = 'AIzaSyA5HPWqOkSZf0AAj9N7Ndg584huXVIy8yc' # 取得したAPIキーを入力してください。 7 8# APIを呼び、認識結果をjson型で返す 9def request_cloud_vison_api(image_base64): 10 api_url = GOOGLE_CLOUD_VISION_API_URL + API_KEY 11 req_body = json.dumps({ 12 'requests': [{ 13 'image': { 14 'content': image_base64.decode('utf-8') # jsonに変換するためにstring型に変換する 15 }, 16 'features': [{ 17 'type': 'DOCUMENT_TEXT_DETECTION', # ここを変更することで分析内容を変更できる 18 'maxResults': 10, 19 }] 20 }] 21 }) 22 res = requests.post(api_url, data=req_body) 23 return res.json() 24 25# 画像読み込み 26def img_to_base64(filepath): 27 with open(filepath, 'rb') as img: 28 img_byte = img.read() 29 return base64.b64encode(img_byte) 30 31# 文字認識させたい画像を./img.pngとする 32img_base64 = img_to_base64(r"C:\Users\straw\Desktop\AOCR\OCR\base\ベース20201120.jpg") 33result = request_cloud_vison_api(img_base64) 34 35#認識した文字の位置など、すべての情報を出力 36#print("{}".format(json.dumps(result, indent=4))) 37 38#認識した文字のみを出力 39text_r = result["responses"][0]["fullTextAnnotation"]["text"] 40for text in text_r: 41 temp2 = [ 42 result["responses"][0]["fullTextAnnotation"]["text"], 43 #座標1の取得 44 #座標2の取得 45 ] 46 print(result["responses"][0]["fullTextAnnotation"]["text"]) 47 48 49 50
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/29 11:01
2020/11/29 11:05
2020/11/29 13:12
2020/11/29 15:02