SathvikGanta's picture
Update app.py
0171218 verified
import cv2
import gradio as gr
from PIL import Image
from diagram_extraction import extract_diagram
from text_extraction import extract_text
from symbol_detection import detect_elements
from comparison import compare_content
def process_and_compare(pdf_image, png_image):
"""Main function to extract, compare, and return the differences."""
# Extract diagrams from both images
diagram1 = extract_diagram(cv2.imread(pdf_image))
diagram2 = extract_diagram(cv2.imread(png_image))
# Extract text and elements from both diagrams
text1 = extract_text(diagram1)
text2 = extract_text(diagram2)
elements1 = detect_elements(diagram1)
elements2 = detect_elements(diagram2)
# Compare the extracted content
missing_text, extra_text = compare_content(text1.split(), text2.split())
missing_elements, extra_elements = compare_content(elements1, elements2)
# Generate the comparison summary
summary = f"Missing Text: {missing_text}\nExtra Text: {extra_text}\n" \
f"Missing Elements: {missing_elements}\nExtra Elements: {extra_elements}"
return summary
# Gradio Interface
interface = gr.Interface(
fn=process_and_compare,
inputs=[gr.Image(type="filepath", label="PDF Diagram Image"),
gr.Image(type="filepath", label="PNG Diagram Image")],
outputs="text",
title="High-Level Diagram Comparison",
description="Upload two diagrams (PDF & PNG) to compare their content."
)
interface.launch()