Dieses Mal werde ich eine der Möglichkeiten zum Empfangen von Bildern mit der Python-Framework-Flasche notieren. Insbesondere empfängt es das Bild in einem Base64-codierten Format, decodiert es auf der Kolbenseite und stellt das Bild wieder her. Verwenden Sie dann open-cv, um das wiederhergestellte Bild in Graustufen zu konvertieren, es in base64 neu zu codieren und es zu notieren, bis es zurückgegeben wird.
Die zu verwendende Bibliothek lautet wie folgt.
requirements.txt
flask
flask-cors
opencv-python
opencv-contrib-python
Ich möchte mehrere in der Anfrage empfangene Datenblätter verarbeiten, daher verwende ich das JSON-Format.
[
{
id : 0
Image : id4zFjyrkAuSI2vUBKVLP...(Base64-codiertes Bild)
},
{
id : 1
Image : k75GN/oll7KUCulSpSM/S...(Base64-codiertes Bild)
}
]
main.py
from flask import Flask, jsonify, request
from flask_cors import CORS
import cv2
import numpy as np
import base64
app = Flask('flask-tesseract-api')
CORS(app)
@app.route("/image/", methods=["POST"])
def post():
"""
Bild in Graustufen konvertieren
"""
response = []
for json in request.json:
#Bild dekodieren
img_stream = base64.b64decode(json['Image'])
#In ein Array konvertieren
img_array = np.asarray(bytearray(img_stream), dtype=np.uint8)
# open-Graustufen mit Lebenslauf
img_gray = cv2.imdecode(img_array, 0)
#Konvertierungsergebnis speichern
cv2.imwrite('result.png', img_before)
#Codieren Sie für gespeicherte Dateien
with open('result.png', "rb") as f:
img_base64 = base64.b64encode(f.read()).decode('utf-8')
#Boxed als Antwort json
response.append({'id':json['id'], 'result' : img_base64})
return jsonify(response)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug=True)
Ich konnte mehrere Bilder im JSON-Format an den Kolben senden. Mit dieser Funktion können Sie die Funktion implementieren, um mehrere Bilder gleichzeitig zu verarbeiten.
Recommended Posts