In [53]:
import cv2
import numpy as np
import scipy.misc
import os
import dlib
import time
os.chdir("/home/mckc/Downloads/Videos//")
%matplotlib inline


video_capture = cv2.VideoCapture(0)
predictor_model = "/home/mckc/Downloads/shape_predictor_68_face_landmarks.dat"

detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_model)
win = dlib.image_window()
movies = os.listdir(os.getcwd())

In [ ]:
for iter in movies:
    i = 0
    os.mkdir('/home/mckc/Downloads/moviedb/'+iter[:-4])   
    cap = cv2.VideoCapture(iter)
    while(cap.grab()):
    # Capture frame-by-frame
#    time.sleep(1)
        ret, frame = cap.read()
        i = i + 1 
        if i % 20 == 0 :
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            gray = cv2.equalizeHist(gray)
            faces = detector(gray, 1)
            win.clear_overlay()
            win.set_image(frame)
            win.add_overlay(faces)
            dlib.hit_enter_to_continue()
    
    # Draw a rectangle around the faces
            if len(faces)>0:    
                for a,b in enumerate(faces):
                    fac = np.array(frame)[np.clip(b.top(),0,b.bottom()):b.bottom(),np.clip(b.left(),0,b.right()):b.right(),:]
                    if (fac.shape[0]+fac.shape[1]) / 2 > 90:
                        scipy.misc.toimage(cv2.cvtColor(fac, cv2.COLOR_RGB2BGR)).save('/home/mckc/Downloads/moviedb/'+iter[:-4] + '/'+iter + '_'+str(i) +'.jpg')

# When everything is done, release the capture
video_capture.release()
cv2.destroyAllWindows()

In [51]:
os.chdir('/home/mckc/Downloads/moviedb/')
folders = os.listdir(os.getcwd())
for i in folders:
    files = os.listdir('/home/mckc/Downloads/moviedb/'+i)
    for j in files:
        image = cv2.imread('/home/mckc/Downloads/moviedb/'+i+'/'+j)
        if(image.shape[0]+image.shape[1]) < 90:
            os.remove('/home/mckc/Downloads/moviedb/'+i+'/'+j)

In [ ]: