-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
41 lines (35 loc) · 1.32 KB
/
app.py
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
import easyocr
import gradio as gr
import re
# Initialize EasyOCR reader
reader = easyocr.Reader(['en', 'hi'])
# Function for OCR and search functionality
def process_image(image, keyword):
# Perform OCR on the image
result = reader.readtext(image, detail=0)
extracted_text = " ".join(result)
# Highlight the keyword in the extracted text
highlight_color = "#87CEEB" # Soft Sky Blue
if keyword:
highlighted_text = re.sub(f"({re.escape(keyword)})",
f"<mark style='background-color: {highlight_color};'>{keyword}</mark>",
extracted_text,
flags=re.IGNORECASE)
else:
highlighted_text = extracted_text
# Check if the keyword is in the text
if keyword and keyword.lower() in extracted_text.lower():
return f"Keyword '{keyword}' found in the text.", highlighted_text
else:
return f"Keyword '{keyword}' not found.", highlighted_text
# Gradio interface
interface = gr.Interface(
fn=process_image,
inputs=["image", "text"],
outputs=["text", "html"],
title="OCR and Document Search with Highlighting",
description="Upload an image, extract text, and search for keywords with highlighting."
)
# Launch the app
if __name__ == "__main__":
interface.launch()