Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import camera
- import ctypes
- class Cam(object):
- def __init__(self):
- self.__cap = cv2.VideoCapture(0)
- def __enter__(self):
- ret, frame = self.__cap.read()
- return frame
- def __exit__(self, type, val, traceback):
- self.__cap.release()
- class FaceDetection(object):
- def __init__(self):
- self.__current_try = 0
- self.__max_tries = 2
- self.__frame = None
- self.__face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
- def attach(self, frame):
- print("Anexando outro frame [{}]".format(frame))
- self.__frame = frame
- def lock(self):
- if self.__current_try < self.__max_tries:
- self.__current_try += 1
- else:
- self.__current_try = 0
- ctypes.windll.user32.LockWorkStation()
- def run(self):
- print("Método [RUN] rodando...")
- faces = self.__face_cascade.detectMultiScale(self.__frame, 1.1, 5)
- if len(faces) == 0:
- print("Nenhum rosto na frente da câmera")
- self.lock()
- else:
- print("Rosto(s) detectado(s)")
- def __enter__(self):
- print("Rodando Detector")
- return self
- def __exit__(self, type, val, traceback):
- print("Detector de faces sendo fechado")
- if __name__ == "__main__":
- with FaceDetection() as detector:
- while 1:
- with Cam() as frame:
- detector.attach(frame)
- detector.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement