Das Dokument war etwas verwirrend, deshalb werde ich es zusammenfassen.
Beide OCR-Ausgangsstrukturen sind
TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
Es ist geworden
import base64
import json
from requests import Request, Session
from io import BytesIO
from PIL import Image
import numpy as np
Erkennen von Zeichen aus Python mithilfe der OCR der Google Cloud Vision-API
def recognize_image1(input_image):#Schließlich str_encode_Zur Datei wechseln
#Beim Wechsel vom Pfad zur Basis64
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
#Beim Wechsel von Array zu 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_Wählen Sie diese Option, wenn Sie das Bild auf den Bildpfad setzen möchten
#str_encode_file = array_to_base64(input_image)# input_Wählen Sie diese Option, wenn Sie das Bild zu einem Array machen möchten
str_url = "https://vision.googleapis.com/v1/images:annotate?key="
str_api_key = ""#Geben Sie hier den API-Schlüssel ein
str_headers = {'Content-Type': 'application/json'}
str_json_data = {
'requests': [
{
'image': {
'content': str_encode_file
},
'features': [
{
'type': "DOCUMENT_TEXT_DETECTION",#Wählen Sie hier den Typ
'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"
Versionshinweise Feature Vertikalen Text mit Google Cloud Vision erkennen
Recommended Posts