Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import cv2
- import os, os.path
- #from skimage.transform import resize
- face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
- eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
- images_path = os.path.join(os.path.dirname(__file__), 'complete_images')
- def filtering():
- try:
- if not os.path.exists('data'):
- os.makedirs('data')
- except OSError:
- print ('Error: Creating directory of data')
- image_size=160
- margin=10
- currentframe = 0
- for folder in os.listdir(images_path):
- folder_path = os.path.join(os.path.dirname(__file__), 'complete_images/'+folder)
- i=0
- for images in os.listdir(folder_path):
- img = cv2.imread(folder_path+'/'+images)
- print(folder_path)
- faces = face_cascade.detectMultiScale(img, 1.3, 5)
- try:
- (x, y, w, h) = faces[0]
- cropped=img[y:y+h, x:x+w]
- aligned = cv2.resize(cropped, (image_size, image_size))
- name = './data/speaker/frame'+str(currentframe)+'.jpg'
- except:
- try:
- eyes = eye_cascade.detectMultiScale(img, 1.3, 5)
- if eyes.shape[0]==2:
- x= max(eyes[1][0],eyes[0][0])
- y= max(eyes[1][1],eyes[0][1])
- w= max(eyes[1][2],eyes[0][2])
- h= max(eyes[1][3],eyes[0][3])
- cropped=img[y-h:y+5*h, x-3*w:x+2*w]
- aligned = cv2.resize(cropped, (image_size, image_size))
- name = './data/speaker/frame'+str(currentframe)+'.jpg'
- else:
- name = './data/nospeaker/frame'+str(currentframe)+'.jpg'
- aligned=img
- except:
- name = './data/nospeaker/frame'+str(currentframe)+'.jpg'
- aligned=img
- cv2.imwrite(name,aligned)
- currentframe += 1
- #if i==100:
- #break
- i+=1
- cv2.destroyAllWindows()
- if __name__ == '__main__':
- filtering()
Add Comment
Please, Sign In to add comment