TDUsingCV / app.py
rishabh5752's picture
Update app.py
2090990
raw
history blame contribute delete
No virus
1.27 kB
import gradio as gr
import cv2
import easyocr
import numpy as np
# Initialize the EasyOCR reader
reader = easyocr.Reader(['en'], gpu=False)
# Function to perform text detection and return the image with bounding boxes
def detect_text(image):
# Convert the image to OpenCV format
image_cv = cv2.imdecode(np.frombuffer(image.read(), np.uint8), cv2.IMREAD_COLOR)
# Detect text on the image
text_results = reader.readtext(image_cv)
# Draw bounding boxes and text on the image
for result in text_results:
bbox, text, score = result
if score > 0.25:
cv2.rectangle(image_cv, bbox[0], bbox[2], (0, 255, 0), 5)
cv2.putText(image_cv, text, bbox[0], cv2.FONT_HERSHEY_COMPLEX, 0.65, (255, 0, 0), 2)
# Convert the processed image back to a format that Gradio can display
image_with_boxes = cv2.imencode('.jpg', image_cv)[1].tobytes()
return image_with_boxes
# Create a Gradio interface
iface = gr.Interface(
fn=detect_text,
inputs=gr.inputs.Image(type="pil", label="Upload an image"),
outputs=gr.outputs.Image(type="pil"),
title="EasyOCR Text Detection",
description="Upload an image and detect text with EasyOCR",
live=True,
)
# Launch the Gradio app
iface.launch()