Spaces:
Sleeping
Sleeping
File size: 1,998 Bytes
fb1a823 c41b38b 844e1ad fb1a823 422d11e 7a171bf 7aa5221 422d11e 00286f9 fb1a823 f941d9c 422d11e 844e1ad 422d11e aba4a6b 422d11e 844e1ad 422d11e f038ea6 7a171bf 422d11e 844e1ad 422d11e 844e1ad 422d11e 844e1ad 422d11e 844e1ad aba4a6b 422d11e 844e1ad |
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 51 52 53 54 55 56 |
import streamlit as st
from PIL import Image
from ocr_engine import extract_weight_from_image
import urllib.parse
# β
App configuration
st.set_page_config(page_title="βοΈ Auto Weight Logger", layout="centered")
st.title("βοΈ Auto Weight Logger")
# β
Capture image from camera
img_data = st.camera_input("π· Capture the weight display")
if img_data is not None:
# β
Check for file size
if len(img_data.getvalue()) > 5 * 1024 * 1024:
st.error("β Image too large (>5MB). Please try again.")
st.stop()
# β
Show captured image
image = Image.open(img_data)
st.image(image, caption="πΈ Snapshot", use_column_width=True)
# β
Run OCR
with st.spinner("π Extracting weight..."):
weight, confidence = extract_weight_from_image(image)
# β
Show debug info (can be removed later)
st.write(f"π οΈ DEBUG: weight = {weight}, confidence = {confidence}")
# β
Retry if OCR failed or confidence too low
if not weight or confidence < 80:
st.error(f"β οΈ OCR confidence too low ({int(confidence)}%). Please retake the image.")
if st.button("π Try Again"):
st.experimental_rerun()
st.stop()
# β
Show success
st.success(f"β
Detected Weight: {weight} g (Confidence: {int(confidence)}%)")
# β
Prepare Salesforce URL
device_id = "BAL-001"
image_url = "" # Leave blank unless you host image
encoded_weight = urllib.parse.quote(str(weight))
encoded_device = urllib.parse.quote(device_id)
encoded_image_url = urllib.parse.quote(image_url)
salesforce_url = (
f"https://autoweightlogger-dev-ed.my.salesforce-sites.com/"
f"weight_logger_page?WeightInput={encoded_weight}&DeviceID={encoded_device}&ImageURL={encoded_image_url}"
)
# β
Send to Salesforce
st.markdown("### π€ Send to Salesforce")
st.markdown(f"[β
Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True)
|