Как разместить Pytesseract OCR в Интернете

Я использую Pytesseract OCR для распознавания текста, и я использую jupyter notebook для запуска программы прямо сейчас, поэтому вывод просто появляется в другом окне. Мой вывод для программы - изображение, и мне интересно, есть ли способ использовать flask или django или что-то еще, чтобы поместить мою программу на веб-сайт.

Я пытаюсь позволить пользователю вводить свое собственное изображение, а затем программа будет выводить другое изображение на веб-сайте.

Это основной код:

def pytess(img):

   hImg,wImg,_ = img.shape
   boxes = pytesseract.image_to_boxes(img)
   for b in boxes.splitlines():
       print(b[0])
       b = b.split(' ')
       x,y,w,h= int(b[1]),int(b[2]),int(b[3]),int(b[4])
       cv2.rectangle(img,(x,hImg-y),(w,hImg-h),(0,0,255), 2)
       cv2.putText(img,b[0],(x,hImg-y+25), cv2.FONT_HERSHEY_COMPLEX,1,(50,50,255),2)



   ##Detecting Words
   hImg,wImg,_ = img.shape
   boxes = pytesseract.image_to_data(img)
   for x,b in enumerate(boxes.splitlines()):
       if x!=0:
           b = b.split()
           if len(b)==12:
               x,y,w,h= int(b[6]),int(b[7]),int(b[8]),int(b[9])
               cv2.rectangle(img,(x,y),(w+x,h+y),(0,0,255), 2)
               cv2.putText(img,b[11],(x,y), cv2.FONT_HERSHEY_COMPLEX,1,(50,50,255),2)


   cv2.imshow("Result",img)
   cv2.waitKey(0)
pytess(img)

Flask определенно подойдет для этого. Вы можете использовать POST-запрос, который принимает файл изображения, а затем возвращает изображение с примененным OCR.

from flask import Flask, request, Response

# Initialize Flask application
app = Flask(__name__)

# POST request for running OCR
@app.route('/ocr', methods= ['POST'])
def run_ocr():
    image = request.files["image"]
    # Read the image via file.stream, returns PIL image (may need to convert)
    img = Image.open(image.stream)
    # run ocr on image (you will need to update your function to return img)
    processed_img = pytess(img)
    # prepare image for response
    _, img_encoded = cv2.imencode('.png', processed_img)
    response = img_encoded.tostring()
    # return png img with OCR shown
    return Response(response=response, status=200, mimetype='image/png')

if __name__ == "__main__":
    app.run(debug=True)

Вернуться на верх