zainabbbbbbbbbb commited on
Commit
3904468
·
verified ·
1 Parent(s): fbb0082

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app.py
2
+ import streamlit as st
3
+ import cv2
4
+ import numpy as np
5
+ from PIL import Image
6
+
7
+ # Load Haar Cascade
8
+ @st.cache_resource
9
+ def load_cascade():
10
+ cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
11
+ if cascade.empty():
12
+ raise Exception("Haar Cascade file not loaded!")
13
+ return cascade
14
+
15
+ # Detect faces
16
+ def detect_faces(image, face_cascade):
17
+ gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
18
+ faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
19
+ for (x, y, w, h) in faces:
20
+ cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)
21
+ return image, len(faces)
22
+
23
+ # Streamlit app
24
+ def main():
25
+ st.title("Real-Time Face Detection App")
26
+ st.write("Upload an image, and the app will detect faces!")
27
+
28
+ # Load Haar Cascade
29
+ face_cascade = load_cascade()
30
+
31
+ # File uploader
32
+ uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "png", "jpeg"])
33
+ if uploaded_file is not None:
34
+ # Read the image
35
+ image = np.array(Image.open(uploaded_file))
36
+ image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
37
+
38
+ # Detect faces
39
+ result_image, face_count = detect_faces(image, face_cascade)
40
+
41
+ # Convert BGR to RGB for display
42
+ result_image = cv2.cvtColor(result_image, cv2.COLOR_BGR2RGB)
43
+
44
+ # Display the image
45
+ st.image(result_image, caption=f"Detected {face_count} face(s).", use_column_width=True)
46
+
47
+ if __name__ == "__main__":
48
+ main()