|
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) |
|
|