Spaces:
Sleeping
Sleeping
File size: 1,768 Bytes
8436d4e a854c90 8436d4e a854c90 8436d4e c6e2bac 8436d4e c6e2bac 8436d4e c6e2bac 8436d4e c6e2bac 8436d4e c6e2bac a854c90 8436d4e a854c90 8436d4e a854c90 8436d4e c6e2bac 8436d4e a854c90 8436d4e a854c90 8436d4e a854c90 8436d4e a854c90 8436d4e a854c90 3904468 |
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 |
import os
import cv2
import streamlit as st
from PIL import Image
def load_cascade():
# Specify the path to the Haar Cascade XML file
cascade_path = 'haarcascade_frontalface_default.xml'
# Check if the Haar Cascade file exists
if not os.path.exists(cascade_path):
raise Exception(f"Haar Cascade file not found at {cascade_path}. Please upload the file.")
# Load the Haar Cascade classifier
face_cascade = cv2.CascadeClassifier(cascade_path)
# Check if the file was successfully loaded
if face_cascade.empty():
raise Exception(f"Failed to load Haar Cascade file from {cascade_path}.")
return face_cascade
def main():
st.title("Face Detection App")
# Load Haar Cascade for face detection
face_cascade = load_cascade()
uploaded_file = st.file_uploader("Upload an Image", type=["jpg", "png", "jpeg"])
if uploaded_file is not None:
# Read the image file
image = Image.open(uploaded_file)
image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Detect faces in the image
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# Draw rectangles around faces
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
# Convert image back to RGB and display it
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
st.image(image, caption="Processed Image", use_column_width=True)
if len(faces) > 0:
st.success("Face detection successful!")
else:
st.warning("No faces detected.")
if __name__ == "__main__":
main()
|