Le document était un peu déroutant, alors je vais le résumer.
Les deux structures de sortie OCR sont
TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
Il est devenu
import base64
import json
from requests import Request, Session
from io import BytesIO
from PIL import Image
import numpy as np
Comment reconnaître les caractères de Python à l'aide de l'OCR de l'API Google Cloud Vision
def recognize_image1(input_image):#Enfin str_encode_Changer de fichier
#Lors du passage du chemin à la base64
def pil_image_to_base64(img_path):
pil_image = Image.open(img_path)
buffered = BytesIO()
pil_image.save(buffered, format="PNG")
str_encode_file = base64.b64encode(buffered.getvalue()).decode("utf-8")
return str_encode_file
#Lors du passage de la matrice à la base64
def array_to_base64(img_array):
pil_image = Image.fromarray(np.uint8(img_array))
buffered = BytesIO()
pil_image.save(buffered, format="PNG")
str_encode_file = base64.b64encode(buffered.getvalue()).decode("utf-8")
return str_encode_file
def get_fullTextAnnotation(json_data):
text_dict = json.loads(json_data)
try:
text = text_dict["responses"][0]["fullTextAnnotation"]["text"]
return text
except:
print(None)
return None
str_encode_file = pil_image_to_base64(input_image) # input_Sélectionnez cette option lorsque vous souhaitez définir l'image sur le PATH de l'image
#str_encode_file = array_to_base64(input_image)# input_Sélectionnez ceci lorsque vous voulez faire de l'image un tableau
str_url = "https://vision.googleapis.com/v1/images:annotate?key="
str_api_key = ""#Mettez la clé API ici
str_headers = {'Content-Type': 'application/json'}
str_json_data = {
'requests': [
{
'image': {
'content': str_encode_file
},
'features': [
{
'type': "DOCUMENT_TEXT_DETECTION",#Sélectionnez le type ici
'maxResults': 1
}
]
}
]
}
obj_session = Session()
obj_request = Request("POST",
str_url + str_api_key,
data=json.dumps(str_json_data),
headers=str_headers
)
obj_prepped = obj_session.prepare_request(obj_request)
obj_response = obj_session.send(obj_prepped,
verify=True,
timeout=60
)
if obj_response.status_code == 200:
text = get_fullTextAnnotation(obj_response.text)
return text
else:
return "error"
Notes de version Feature Reconnaître le texte vertical à l'aide de Google Cloud Vision