Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from dotenv import load_dotenv, find_dotenv | |
| import easyocr | |
| _ = load_dotenv(find_dotenv()) | |
| out_textbox = gr.TextArea( | |
| label="Output", | |
| info="Data extracted", | |
| lines=10, | |
| value="", | |
| interactive= True | |
| ) | |
| def process(filepath): | |
| reader = easyocr.Reader(['en'],gpu=True) | |
| result = reader.readtext(filepath, batch_size=3) | |
| latest_x = 0 | |
| latest_y = 0 | |
| content = "" | |
| x_to_charactor = 0 | |
| for x,y,z in result: | |
| current_x = x[0][0] | |
| current_y = x[0][1] | |
| if x_to_charactor == 0: | |
| x_to_charactor = (x[1][0] - x[0][0])/(len(y)) | |
| if current_y - latest_y > 10: | |
| content += f""" | |
| """ | |
| num_space = int((current_x - 0)/x_to_charactor) | |
| if num_space > 1 and latest_x != 0: | |
| for i in range(num_space): | |
| content += f""" """ | |
| content += f"""{y}""" | |
| else: | |
| num_space = int((current_x - latest_x)/x_to_charactor) | |
| if num_space > 1 and latest_x != 0: | |
| for i in range(num_space): | |
| content += f""" """ | |
| content += f""" {y}""" | |
| latest_x = x[1][0] | |
| latest_y = current_y | |
| yield content | |
| with gr.Blocks() as demo: | |
| gr.Interface( | |
| process, | |
| [gr.Image(type="filepath")], | |
| [out_textbox], | |
| flagging_options=[], | |
| examples=[] | |
| ) | |
| demo.launch(server_name="0.0.0.0", server_port=7860) |