# coding=utf-8
import cv2
import os
import imutils
import sys


print("Nombre de las persona")
nombre = raw_input()
print(nombre)

ruta = 'D:/Users/edwin/Desktop/UNI/teoria de sistemas/deteccion de rostros/data' #ruta del proyecto
rutapersona = ruta + '/' + nombre

if not os.path.exists(rutapersona):
	print('Carpeta creada: ',rutapersona)
	os.makedirs(rutapersona)

cap = cv2.VideoCapture(0)
#cap = cv2.VideoCapture('Video.mp4') si es de un video guaradado

faceClassif = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
count = 0

while True:

	ret, frame = cap.read()
	if ret == False: break
	frame =  imutils.resize(frame, width=640)
	gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
	auxFrame = frame.copy()

	faces = faceClassif.detectMultiScale(gray,1.3,5)

	for (x,y,w,h) in faces:
		cv2.rectangle(frame, (x,y),(x+w,y+h),(0,255,0),2)
		rostro = auxFrame[y:y+h,x:x+w]
		rostro = cv2.resize(rostro,(150,150),interpolation=cv2.INTER_CUBIC)
		cv2.imwrite(rutapersona + '/rotro_{}.jpg'.format(count),rostro)
		count = count + 1
	cv2.imshow('frame',frame)

	k =  cv2.waitKey(1)
	if k == 27 or count >= 300:
		break

cap.release()
cv2.destroyAllWindows()