from time import sleep from io import BytesIO import cv2 import numpy as np import os def addPerson(label, ImagesPath, newFileName, oldFileName): try: #faceFilePath = '/faces/hesham-saeed2' faceFile = 'faces/'+ oldFileName face_recognizer = cv2.createLBPHFaceRecognizer() face_recognizer.load(faceFile) except: print('[ Error ] Problem in init/loading LBPHfacerecognizer') images = [] labels = [] image_names = os.listdir(ImagesPath) for image_name in image_names: if image_name.startswith('.'): continue; image_path = ImagesPath + image_name image = cv2.imread(image_path) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: images.append(gray[y:y+h, x:x+w]) labels.append(label) print('Added '+ image_name) face_recognizer.update(images, np.array(labels)) face_recognizer.save('faces/'+newFileName) addPerson(3,'train/','test1','Hesham-Saeed2')