У меня есть следующая функция, которая передает URL-адрес изображения в службу Google Vision и возвращает буквы и цифры (символы) на изображении. Он отлично работает с общими веб-адресами, но я вызываю его для доступа к файлам, хранящимся в хранилище Google, это не работает. Как я могу заставить это работать? Я просмотрел примеры из Google, но не могу понять, как это сделать?
Если невозможно использовать хранилище Google, есть ли способ просто загрузить изображение, а не хранить его в файловой системе? Мне не нужно хранить изображение, все, что меня волнует, - это возвращаемые символы.
def detect_text_uri(uri):
"""Detects text in the file located in Google Cloud Storage or on the Web.
"""
from google.cloud import vision
client = vision.ImageAnnotatorClient()
image = vision.types.Image()
image.source.image_uri = uri
image.source.gcs_image_uri = uri
response = client.text_detection(image=image)
texts = response.text_annotations
print('Texts:')
for text in texts:
print('\n"{}"'.format(text.description))
vertices = (['({},{})'.format(vertex.x, vertex.y)
for vertex in text.bounding_poly.vertices])
print('bounds: {}'.format(','.join(vertices)))
return texts
{
Эта строка не работает, она должна читать изображение, которое я поместил в хранилище Google, все, что возвращается, - это пустой ответ:
detect_text_uri("'source': {'image_uri': 'gs://ocr_storage/meter_reader.jpg'}")
Эта строка отлично работает:
detect_text_uri('https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Transparent_Electricity_Meter_found_in_Israel.JPG/220px-Transparent_Electricity_Meter_found_in_Israel.JPG')