Google Vision API 'TypeError: недопустимый файл'

Следующий фрагмент кода взят из документации Google Vision API, единственное изменение, которое я сделал, - это добавление парсера аргументов для функции внизу.

import argparse
import os
from google.cloud import vision
import io

def detect_text(path):
"""Detects text in the file."""
client = vision.ImageAnnotatorClient()

with io.open(path, 'rb') as image_file:
    content = image_file.read()

image = vision.types.Image(content=content)

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)))

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", type=str,
    help="path to input image")
args = vars(ap.parse_args())
detect_text(args)

Если я запускаю его с терминала, как показано ниже, я получаю эту ошибку неверного файла:

PS C:\VisionTest> python visionTest.py --image C:\VisionTest\test.png
Traceback (most recent call last):
  File "visionTest.py", line 31, in <module>
    detect_text(args)
  File "visionTest.py", line 10, in detect_text
    with io.open(path, 'rb') as image_file:
TypeError: invalid file: {'image': 'C:\\VisionTest\\test.png'}

Я пробовал с различными изображениями и типами изображений, а также безуспешно запускал код из разных мест.


person AlToy    schedule 26.11.2019    source источник


Ответы (1)


Похоже, файл либо не существует, либо поврежден, так как даже не читается. Можете ли вы попробовать другое изображение и убедиться, что оно находится в ожидаемом вами месте?

person Brendan    schedule 08.12.2019