Cette fois, je vais noter l'une des façons de recevoir des images avec le flask framework python. Plus précisément, il reçoit l'image dans un format encodé en base64, la décode côté flacon et restaure l'image. Ensuite, utilisez open-cv pour convertir l'image restaurée en niveaux de gris, ré-encodez-la en base64 et notez-la jusqu'à ce qu'elle soit renvoyée.
La bibliothèque à utiliser est la suivante.
requirements.txt
flask
flask-cors
opencv-python
opencv-contrib-python
Je souhaite gérer plusieurs feuilles de données reçues dans la demande, je vais donc utiliser le format json.
[
{
id : 0
Image : id4zFjyrkAuSI2vUBKVLP...(Image encodée en base64)
},
{
id : 1
Image : k75GN/oll7KUCulSpSM/S...(Image encodée en base64)
}
]
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():
"""
Convertir l'image en échelle de gris
"""
response = []
for json in request.json:
#Décoder l'image
img_stream = base64.b64decode(json['Image'])
#Convertir en tableau
img_array = np.asarray(bytearray(img_stream), dtype=np.uint8)
# open-Échelle de gris avec cv
img_gray = cv2.imdecode(img_array, 0)
#Enregistrer le résultat de la conversion
cv2.imwrite('result.png', img_before)
#Encoder pour les fichiers enregistrés
with open('result.png', "rb") as f:
img_base64 = base64.b64encode(f.read()).decode('utf-8')
#Encadré en réponse 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)
J'ai pu envoyer plusieurs images encodées dans flask au format json. Avec cela, vous pouvez implémenter la fonction pour gérer plusieurs images en même temps.
Recommended Posts