Как интерпретировать загруженное изображение через форму (POST) вместо локального изображения Python PIL - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь интерпретировать изображение, и мой код работает для интерпретации изображения, сохраненного локально, но я хочу интерпретировать изображение, которое я загружаю в форму через POST, фактически не сохраняя его локально.Это возможно?

  1. Я пытался использовать request.form['receipt-photo'] (receipt-photo - это имя поля загрузки)
text = image_to_string(Image.open(request.form['receipt-photo']))

но я получил FileNotFoundError: [Errno 2] No such file or directory: 'receipt3.jpg'

Я также пытался
text = image_to_string(request.form['receipt-photo'])

Ошибка, которую я получил.

pytesseract.pytesseract.TesseractError: (1, 'Tesseract Open Source OCR Engine v4.0.0 with Leptonica Error, cannot read input file /Users/alexmarginean/Documents/Projects/Weeper/receipt3.jpg: No such file or directory Error during processing.')

Затем я поискал в Интернете и нашел кое-что о преобразовании в байты, но у меня это не сработало
text = image_to_string(Image.open(BytesIO(request.form['receipt-photo'])))

Ошибка, которую я получил: TypeError: a bytes-like object is required, not 'str'


Это работает (но использует локально сохраненное изображение)

Это был мой код, который использовал локально сохраненное изображение

text = image_to_string(Image.open('receipt3.jpg'))

Я ожидаю, что мою фотографию можно будет использовать только после отправки POSTзапрос без сохранения изображения локально.Буду очень признателен, если кто-нибудь сможет мне помочь.

1 Ответ

1 голос
/ 02 апреля 2019

Создайте папку, в которой вы хотите хранить загруженные файлы, назовем ее /uploads

В вашей форме создайте поле загрузки и кнопку

<form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="receipt-photo">
    <input type="submit" value="Upload">
</form>

Затем в Flask (при условиивы используете колбу) добавить конечную точку

@app.route('/upload', methods=[POST])
    file = request.files['receipt-photo']
    f = os.path.join('/uploads', file.filename)

    file.save(f)

    # Manipulate image with PIL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...