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 [ ]: