37 lines
1.0 KiB
Python
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)
|