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'' # 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()