Spaces:
Sleeping
Sleeping
File size: 1,468 Bytes
a481416 8b5815c 7ec4a88 27ed571 a481416 e6e3c3a 7ec4a88 a481416 e6e3c3a 8b5815c e6e3c3a 94a9b1b 27ed571 94a9b1b 27ed571 e6e3c3a eff70bd e6e3c3a 6a56695 e6e3c3a 94a9b1b a481416 94a9b1b 7ec4a88 8c50e18 7ec4a88 e6e3c3a 27ed571 e6e3c3a eff70bd a481416 e6e3c3a eff70bd 94a9b1b e6e3c3a eff70bd |
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 42 43 44 45 46 47 48 49 50 |
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()
|