Spaces:
Build error
Build error
| import streamlit as st | |
| import cv2 | |
| import mediapipe as mp | |
| import numpy as np | |
| from PIL import Image | |
| # MediaPipe setup | |
| mp_face_mesh = mp.solutions.face_mesh | |
| mp_drawing = mp.solutions.drawing_utils | |
| grid_color = (0, 255, 0) # Green color | |
| drawing_spec = mp_drawing.DrawingSpec(color=grid_color, thickness=1, circle_radius=1) | |
| st.title("MediaPipe Face Mesh Detection") | |
| # Upload image | |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) | |
| if uploaded_file is not None: | |
| # Read the image file | |
| image = Image.open(uploaded_file).convert("RGB") | |
| image = np.array(image) | |
| # Convert RGB to BGR for MediaPipe | |
| image_bgr = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) | |
| # Initialize MediaPipe FaceMesh | |
| with mp_face_mesh.FaceMesh(min_detection_confidence=0.5, min_tracking_confidence=0.5) as face_mesh: | |
| results = face_mesh.process(image_bgr) | |
| # Draw landmarks | |
| if results.multi_face_landmarks: | |
| for face_landmarks in results.multi_face_landmarks: | |
| mp_drawing.draw_landmarks( | |
| image=image_bgr, | |
| landmark_list=face_landmarks, | |
| connections=mp_face_mesh.FACEMESH_TESSELATION, | |
| landmark_drawing_spec=drawing_spec, | |
| connection_drawing_spec=drawing_spec, | |
| ) | |
| # Convert the image back to RGB for display in Streamlit | |
| image_rgb = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2RGB) | |
| st.image(image_rgb, channels="RGB", caption="Processed Image") | |