Zai commited on
Commit
4de03b2
·
1 Parent(s): db97677

added interface

Browse files
Files changed (1) hide show
  1. interface/app.py +38 -5
interface/app.py CHANGED
@@ -1,10 +1,43 @@
 
1
  import streamlit as st
 
 
 
2
 
 
 
 
 
 
 
 
 
3
 
4
  def main():
5
- st.title("Head shot")
6
- st.write("Simulate wartime and get the headshot using python")
7
-
8
-
9
- if __name__ == '__main__':
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  main()
 
1
+ import cv2
2
  import streamlit as st
3
+ from PIL import Image
4
+ def detect_faces(image):
5
+ face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
6
 
7
+ gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
8
+
9
+ faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
10
+
11
+ for (x, y, w, h) in faces:
12
+ cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
13
+
14
+ return image
15
 
16
  def main():
17
+ st.title("Headshot simulator")
18
+
19
+ video_source = st.sidebar.radio("Select video source:", ("Webcam", "Upload"))
20
+
21
+ if video_source == "Webcam":
22
+ cap = cv2.VideoCapture(0)
23
+ else:
24
+ uploaded_file = st.sidebar.file_uploader("Choose a video file", type=["mp4", "avi"])
25
+ if uploaded_file is not None:
26
+ file_bytes = uploaded_file.read()
27
+ cap = cv2.VideoCapture(file_bytes)
28
+
29
+ if "cap" in locals():
30
+ while cap.isOpened():
31
+ ret, frame = cap.read()
32
+
33
+ if not ret:
34
+ break
35
+
36
+ frame_with_faces = detect_faces(frame)
37
+
38
+ st.image(frame_with_faces, channels="BGR", use_column_width=True)
39
+
40
+ cap.release()
41
+
42
+ if __name__ == "__main__":
43
  main()