| | from flask import Flask, request, jsonify |
| | from rapidocr_onnxruntime import RapidOCR |
| | from PIL import Image |
| | import numpy as np |
| |
|
| | app = Flask(__name__) |
| | engine = RapidOCR() |
| |
|
| | @app.route('/') |
| | def index(): |
| | return "Welcome to the OCR API" |
| |
|
| | @app.route('/ocr', methods=['POST']) |
| | def process_ocr(): |
| | if 'image' not in request.files: |
| | return jsonify({'error': 'No image file provided'}), 400 |
| |
|
| | text_results = [] |
| |
|
| | for img_file in request.files.getlist('image'): |
| | img = Image.open(img_file) |
| | lebar, tinggi = img.size |
| |
|
| | potong_atas = 201 |
| | area_crop = (0, potong_atas, lebar, tinggi // 2) |
| | img_crop = img.crop(area_crop) |
| |
|
| | img_array = np.array(img_crop) |
| |
|
| | result, _ = engine(img_array) |
| |
|
| | text_array = [item[1] for item in result] |
| | text_results.append(text_array) |
| |
|
| | return jsonify({'text': text_results}) |
| |
|
| | if __name__ == '__main__': |
| | app.run(host='0.0.0.0', port=7860, debug=True) |
| |
|