Paddle_OCR / app.py
debu das
Update app.py
8344c73
import os
import streamlit as st
import paddlehub as hub
from PIL import Image
import io
import numpy
import cv2
from paddleocr import PaddleOCR,draw_ocr
def ocr(img,lang):
# Paddleocr supports Chinese, English, French, German, Korean and Japanese.
# You can set the parameter `lang` as `ch`, `en`, `french`, `german`, `korean`, `japan`
# to switch the language model in order.
ocr = PaddleOCR(use_angle_cls=True, lang=lang) # need to run only once to download and load model into memory
print(img)
print(type(img))
result = ocr.ocr(img, cls=True)
for idx in range(len(result)):
res = result[idx]
for line in res:
print(line)
# draw result
from PIL import Image
result = result[0]
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
im_pil = Image.fromarray(img)
image = im_pil
boxes = [line[0] for line in result]
st.text(boxes)
txts = [line[1][0] for line in result]
st.text(txts)
scores = [line[1][1] for line in result]
st.text(scores)
im_show = draw_ocr(image, boxes, txts, scores, font_path='./simfang.ttf')
im_show = Image.fromarray(im_show)
st.image(im_show, caption='ocr output')
#im_show.save('result.jpg')
_, col0, _ = st.columns([1, 3, 1])
with col0:
st.header("OCR")
form = st.form(key='my-form')
uploaded_file = form.file_uploader('Choose your img file', type=['png', 'jpg'],accept_multiple_files=False)
submit = form.form_submit_button('Submit')
if submit:
if uploaded_file is not None:
bytes_data = uploaded_file.getvalue()
if bytes_data is not None:
bytes_data = uploaded_file.read()
image = Image.open(io.BytesIO(bytes_data))
st.image(image, caption='your img')
pil_image=image.convert('RGB')
open_cv_image = numpy.array(pil_image)
# Convert RGB to BGR
open_cv_image = open_cv_image[:, :, ::-1].copy()
ocr(open_cv_image,'ch')