FANDOM


# -*- coding: utf-8 -*-

from datetime import datetime

import cv2

import cv

import sys


# Criação do nome do video baseada na data atual

now = datetime.now()

nameVideo =  str(now.day) +"-"+ str(now.month) +"-"+ str(now.year) + ".avi"


# Recebe o argumento passado na inicialização do programa para a detecção

cascPath = sys.argv[1]

faceCascade = cv2.CascadeClassifier(cascPath)


# Inicia a captura da câmera, nesse caso como foi usado a webcam o parâmetro é 0

video_capture = cv2.VideoCapture(0)


# Definição do formato de saida do video e como deve ser salvo

fourcc = cv2.cv.CV_FOURCC(*'DIVX')

out = cv2.VideoWriter(nameVideo ,fourcc, 20.0, (640,480))


while True:

    # Atualiza a data e hora

    now = datetime.now()


    # Captura  frame a frame

    ret, frame = video_capture.read()

    # Definição da string que deve aparecer no video

    completeDate = str(now.hour) +":"+ str(now.minute) +":"+ str(now.second) +" - "+ str(now.day) +"/"+ str(now.month) +"/"+ str(now.year)


    # Escrenvendo data e hora no video

    cv2.putText(frame, completeDate, (50,450), cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 0.5, (255,255,255))


    if (ret==True):

        # Converte a imagem capturada em escala de cinza

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)


        # Detecta faces

        faces = faceCascade.detectMultiScale( gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30), flags=cv2.cv.CV_HAAR_SCALE_IMAGE )


        # Só grava no video se houver ao menos uma face detectada

        if (len(faces) > 0):

            out.write(frame)

        """

        O código a baixo serve para saber quantas faces foram detectadas, mas nessa situação ele não foi utilizado

        try:

            print ("Found {0} faces!".format(len(faces)))

            print (faces)

        except:

            print("Not found faces")

        """

        # Desenha os retângulos ao redor da face achada

        i = 0

        for (x, y, w, h) in faces:        

            cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)


        # Mostra o frame com o rosto marcado por um retângulo verde

        cv2.imshow('Video', frame)


        # Esperar o usuário apertar a tecla "q" para parar a captura 

        if cv2.waitKey(1) & 0xFF == ord('q'):

            break

    else:

        break;


# Liberar a captura do vídeo 

video_capture.release()

out.release()

# Fechar todas as janela criadas no programa

cv2.destroyAllWindows()

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.