File size: 1,179 Bytes
afdbcb1
7acc140
ad5fb46
afdbcb1
7ebb572
86c36ee
7ebb572
 
546f703
afdbcb1
1ff395f
0032752
1ff395f
1e29126
afdbcb1
 
 
 
ad5fb46
caff417
546f703
caff417
d333a65
7410fcb
 
 
ad5fb46
7410fcb
afdbcb1
 
caff417
afdbcb1
 
 
1d9e91e
afdbcb1
 
7410fcb
1d9e91e
2620b9a
1d9e91e
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
import cv2
import streamlit as st
import tempfile

try:
    face_cascade = cv2.CascadeClassifier('XML/faces.xml')
except Exception:
    st.write("Error loading cascade classifiers")

def censor_face(filePath):
    
    #output_file = 'Output/censored_' + str(filePath.name) + '.mp4'
    
    video=cv2.VideoCapture(filePath.name)
    success, frame = video.read()
    
    height = frame.shape[0]
    width = frame.shape[1]

    #st.write(height, width)

    #gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    #st.write("Frame: " + str(frame))

    tfile2 = tempfile.NamedTemporaryFile(delete=False, suffix='.mp4')
    #tfile2.write("Censored.mp4")
    
    output=cv2.VideoWriter(tfile2.name, cv2.VideoWriter_fourcc(*'mp4v'), 30, (width, height))
    
    while success:
        faces = face_cascade.detectMultiScale(frame, 1.1, 4)
        for (x,y, w, h) in faces: #multiple faces in a video
            frame[y:y+h, x:x+w] = cv2.blur(frame[y:y+h, x:x+w], (150, 150))
        output.write(frame)
        #tfile2.write(frame)
        success, frame = video.read()    
    
    output.release()    
    #video.release()
    result_video = open(tfile2, "rb")
    return result_video