Spaces:
Runtime error
Runtime error
import gradio as gr | |
import cv2 | |
import numpy as np | |
import pytesseract | |
import time | |
def text1(image): | |
start_time = time.time() | |
# Convert the image to grayscale | |
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
# Apply thresholding to preprocess the image | |
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] | |
# Perform OCR on the thresholded image | |
text = pytesseract.image_to_string(thresh, lang='eng') | |
# Split the OCR output into a list of lines | |
lines = [line.strip() for line in text.split('\n') if line.strip()] | |
end_time = time.time() | |
time_taken = end_time - start_time | |
return { | |
'text': lines, | |
'time_taken': time_taken | |
} | |
def text2(image): | |
start_time = time.time() | |
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
inverted = cv2.bitwise_not(gray) | |
# apply thresholding to preprocess the image | |
thresh = cv2.threshold(inverted, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] | |
# text = pytesseract.image_to_string(plate_roi, lang='eng', config='--psm 6') | |
text = pytesseract.image_to_string(thresh, lang='eng') | |
# split the OCR output into a list of lines | |
lines = [line.strip() for line in text.split('\n') if line.strip()] | |
end_time = time.time() | |
time_taken = end_time - start_time | |
return { | |
'text': lines, | |
'time_taken': time_taken | |
} | |
def text3(image): | |
start_time = time.time() | |
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
inverted = cv2.bitwise_not(gray) | |
# apply thresholding to preprocess the image | |
thresh = cv2.threshold(inverted, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] | |
# text = pytesseract.image_to_string(plate_roi, lang='eng', config='--psm 6') | |
text = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6 -c tessedit_char_whitelist=0123456789.') | |
# split the OCR output into a list of lines | |
lines = [line.strip() for line in text.split('\n') if line.strip()] | |
end_time = time.time() | |
time_taken = end_time - start_time | |
return { | |
'text': lines, | |
'time_taken': time_taken | |
} | |
with gr.Blocks() as demo: | |
gr.Markdown("Various OCR (Optical Character Recognition) tools can convert images into text form. Some popular methods include Tesseract OCR, Google Cloud Vision API, and Microsoft Azure Cognitive Services OCR. These tools use advanced algorithms to analyze images, recognize characters, and convert them into editable text, enabling efficient data extraction and document digitization.") | |
with gr.Tab("OCR Function 1"): | |
image_input1 = gr.inputs.Image() | |
text_output1 = gr.outputs.Textbox() | |
button1 = gr.Button("Perform OCR") | |
with gr.Tab("OCR Function 2"): | |
image_input2 = gr.inputs.Image() | |
text_output2 = gr.outputs.Textbox() | |
button2 = gr.Button("Perform OCR") | |
with gr.Tab("OCR Function 3"): | |
image_input3 = gr.inputs.Image() | |
text_output3 = gr.outputs.Textbox() | |
button3 = gr.Button("Perform OCR") | |
button1.click(text1, inputs=image_input1, outputs=text_output1) | |
button2.click(text2, inputs=image_input2, outputs=text_output2) | |
button3.click(text3, inputs=image_input3, outputs=text_output3) | |
demo.launch() | |