File size: 1,641 Bytes
b9e018b
e871a21
b9e018b
 
 
 
 
 
 
 
e871a21
 
 
 
 
 
b9e018b
e871a21
 
 
 
 
 
 
 
 
 
 
b9e018b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from PIL import Image
import pytesseract
import gradio as gr
import os
langs = []

choices = os.popen('tesseract --list-langs').read().split('\n')[1:-1]

blocks = gr.Blocks()


# If you don't have tesseract executable in your PATH, include the following:
# pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract'

# Simple image to string
# print(pytesseract.image_to_string(Image.open('eurotext.png')))

# # French text image to string
# print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra'))

# # Get bounding box estimates
# print(pytesseract.image_to_boxes(Image.open('test.png')))

# # Get verbose data including boxes, confidences, line and page numbers
# print(pytesseract.image_to_data(Image.open('test.png')))

# # Get information about orientation and script detection
# print(pytesseract.image_to_osd(Image.open('test.png'))


def run(image, lang=None):
    result = pytesseract.image_to_string(
        image, lang=None if lang == [] else lang)
    return result


with gr.Blocks() as demo:
    gr.Markdown("## Hello pytesseract!")
    with gr.Row():
        with gr.Column():
            image_in = gr.Image(type="pil")
            lang = gr.Dropdown(choices)
            btn = gr.Button("Run")
        with gr.Column():
            text_out = gr.TextArea()

    examples = gr.Examples([["./eurotext.png", None]], fn=run, inputs=[
                           image_in, lang], outputs=[text_out], cache_examples=False)
    btn.click(fn=run, inputs=[image_in, lang], outputs=[text_out])

demo.launch()