import streamlit as st import cv2 import pytesseract from PIL import Image import numpy as np st.title("Candy Label Scanner") # Function to capture video from the camera def capture_video(): cap = cv2.VideoCapture(0) stframe = st.empty() while cap.isOpened(): ret, frame = cap.read() if not ret: break # Display the video frame stframe.image(frame, channels="BGR") # Capture the frame when the button is pressed if st.button("Capture", key="capture_button"): cap.release() return frame # Function to analyze the captured image for nutritional values def analyze_image(image): # Convert the image to grayscale gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Use Tesseract to do OCR on the image text = pytesseract.image_to_string(gray, lang='kor') # Display the extracted text st.subheader("Extracted Text") st.text(text) # Extract the sugar content using a regex pattern import re pattern = re.compile(r"당류\s*:\s*(\d+(\.\d+)?)\s*g") match = pattern.search(text) if match: sugar_content = float(match.group(1)) st.subheader("Sugar Content") st.write(f"Sugar content: {sugar_content}g") # Determine the potential harm based on the sugar content if sugar_content > 20: st.markdown('

Dangerous

', unsafe_allow_html=True) elif sugar_content > 10: st.markdown('

Normal

', unsafe_allow_html=True) else: st.markdown('

Good

', unsafe_allow_html=True) else: st.write("Sugar content not found") # Main application logic if __name__ == "__main__": st.write("Click 'Start Camera' to scan a candy label") if st.button("Start Camera"): frame = capture_video() if frame is not None: analyze_image(frame)