File size: 1,840 Bytes
80298ee
c9a595a
 
 
f9a67e7
c9a595a
 
 
 
a8cf8ca
c9a595a
 
 
 
365510a
c9a595a
a8cf8ca
c9a595a
 
 
a8cf8ca
dc22437
 
 
a8cf8ca
 
 
 
b4bc2b8
a8cf8ca
 
c9a595a
 
 
a8cf8ca
 
 
cd4dcaf
c9a595a
 
 
 
 
 
cd4dcaf
c9a595a
dc22437
 
66598b9
a8cf8ca
66598b9
 
a8cf8ca
 
c9a595a
a8cf8ca
 
 
 
c9a595a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import gradio as gr
import os
import cv2
import numpy as np
from PIL import Image
from paddleocr import PPStructure,save_structure_res
from paddleocr.ppstructure.recovery.recovery_to_doc import sorted_layout_boxes, convert_info_docx

# Chinese image
# table_engine = PPStructure(recovery=True)

# English image
# table_engine = PPStructure(recovery=True, lang='en')

examples = [['0.png']]

def find_layout(image, mode):
    save_folder = './output'
    # img = cv2.imread(image)
    img = np.array(image)

    print("The variable image is of type:", type(image))
    print("The variable img is of type:", type(img))

    if mode=="LayoutAnalysis":
        table_engine = PPStructure(table=False, ocr=False, show_log=True)
    elif mode=="TableRecognition":
        table_engine = PPStructure(layout=False, show_log=True)
    else:
        table_engine = PPStructure(recovery=True)
    
    result = table_engine(img)
    save_structure_res(result, save_folder, os.path.basename("result").split('.')[0])

    if mode=="LayoutReccovery":
        h, w, _ = img.shape
        res = sorted_layout_boxes(result, w)
    
    final_text = []
    for line in result:
        line.pop('img')
        print(line)
        final_text.append(line)

    # convert_info_docx(img, res, save_folder, os.path.basename("result").split('.')[0])

    # image = Image.open(img_path).convert('RGB')
    image = image.convert('RGB')
    # img = img.convert('RGB')
    im_show = draw_structure_result(image, result)
    # im_show = Image.fromarray(im_show)
    # im_show.save('result.jpg')

    return final_text, im_show

iface = gr.Interface(fn=find_layout, inputs=[
        gr.Image(type="pil"),
        gr.CheckboxGroup(["LayoutAnalysis", "TableRecognition", "LayoutRecovery"], label="mode"),
    ], outputs=["text", "image"], examples=examples)
iface.launch()