LPlateVision / ui.py
DeepActionPotential's picture
🚀 Initial upload of my app
5f36299 verified
import streamlit as st
from utils import detect_license_plate, load_image_from_upload, load_image_from_url
import io
from PIL import Image
import numpy as np
def render_chat_ui(model):
st.markdown("Chat-style license plate detector. Upload an image or paste a URL.")
history = st.session_state.get("chat_history", [])
input_mode = st.radio("Choose Input Type", ["Upload Image", "Image URL"])
# Input
uploaded_file = None
image_url = None
if input_mode == "Upload Image":
uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
else:
image_url = st.text_input("Paste image URL")
submit = st.button("Detect License Plate")
if submit:
if input_mode == "Upload Image" and uploaded_file is not None:
image = load_image_from_upload(uploaded_file)
label = "User uploaded an image."
elif input_mode == "Image URL" and image_url.strip():
image = load_image_from_url(image_url)
label = f"User sent image URL: {image_url}"
else:
st.warning("Please provide a valid image.")
return
st.session_state.chat_history = history + [(label, image)]
# Detect and display
with st.spinner("Detecting license plate..."):
result_img = detect_license_plate(model, image)
st.image(result_img, caption="Bounding box", use_column_width=True)
# Save result to history
st.session_state.chat_history.append(("Bounding box", result_img))