Files
fcb_photo_review/det_api.py
2024-09-20 14:47:43 +08:00

37 lines
1.0 KiB
Python

import base64
import cv2
import numpy as np
from flask import Flask, request, jsonify, Blueprint
from paddle_detection import detector
from util.common_util import process_request
app = Flask(__name__)
det_bp = Blueprint('det_bp', __name__)
app.register_blueprint(det_bp, url_prefix='/det')
@det_bp.route("/books", methods=['POST'])
@process_request
def books():
try:
file = request.files['image']
image_data = file.read()
nparr = np.frombuffer(image_data, np.uint8)
image = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
result = detector.get_book_areas(image)
encoded_images = []
for i in result:
_, encoded_image = cv2.imencode('.jpg', i)
byte_stream = encoded_image.tobytes()
img_str = base64.b64encode(byte_stream).decode('utf-8')
encoded_images.append(img_str)
return jsonify(encoded_images), 200
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run("0.0.0.0", 5000)