Sanjayraju30's picture
Update app.py
e6e3c3a verified
raw
history blame
1.47 kB
import gradio as gr
from PIL import Image, ImageEnhance, ImageOps
import numpy as np
import easyocr
import re
from datetime import datetime
import pytz
# Load EasyOCR
reader = easyocr.Reader(['en'], gpu=False)
# Enhance image
def enhance_image(image):
image = image.convert("L")
image = ImageOps.invert(image)
image = ImageEnhance.Contrast(image).enhance(2.5)
image = ImageEnhance.Sharpness(image).enhance(2.5)
image = image.resize((image.width * 2, image.height * 2))
return image
# Main detection
def detect_weight(image):
try:
processed = enhance_image(image)
np_img = np.array(processed)
result = reader.readtext(np_img, detail=0)
full_text = " ".join(result)
match = re.search(r"\d{1,4}(?:\.\d{1,4})?", full_text)
weight = match.group(0) if match else "Not detected"
ist = pytz.timezone("Asia/Kolkata")
now = datetime.now(ist).strftime("%Y-%m-%d %H:%M:%S")
return f"Weight: {weight} kg\nCaptured At: {now} (IST)", image
except Exception as e:
return f"Error: {str(e)}", image
# UI
interface = gr.Interface(
fn=detect_weight,
inputs=gr.Image(type="pil", label="Upload or Capture Image"),
outputs=[gr.Textbox(label="Weight Info"), gr.Image(label="Snapshot")],
title="⚖️ Auto Weight Detector",
description="Detects weight from image (e.g., 52.75 kg) and shows IST time using EasyOCR (no Tesseract)."
)
interface.launch()