13nishit's picture
Upload 25 files
aa77e96
'''
cargo las imagenes que estan en el folder database_images
'''
import config as cfg
import os
from my_face_recognition import f_main
import cv2
import numpy as np
import traceback
def load_images_to_database():
list_images = os.listdir(cfg.path_images)
# filto los archivos que no son imagenes
list_images = [File for File in list_images if File.endswith(('.jpg','.jpeg','JPEG'))]
# inicalizo variables
name = []
Feats = []
# ingesta de imagenes
for file_name in list_images:
im = cv2.imread(cfg.path_images+os.sep+file_name)
# obtengo las caracteristicas del rostro
box_face = f_main.rec_face.detect_face(im)
feat = f_main.rec_face.get_features(im,box_face)
if len(feat)!=1:
'''
esto significa que no hay rostros o hay mas de un rostro
'''
continue
else:
# inserto las nuevas caracteristicas en la base de datos
new_name = file_name.split(".")[0]
if new_name == "":
continue
name.append(new_name)
if len(Feats)==0:
Feats = np.frombuffer(feat[0], dtype=np.float64)
else:
Feats = np.vstack((Feats,np.frombuffer(feat[0], dtype=np.float64)))
return name, Feats
def insert_new_user(rec_face,name,feat,im):
try:
rec_face.db_names.append(name)
if len(rec_face.db_features)==0:
rec_face.db_features = np.frombuffer(feat[0], dtype=np.float64)
else:
rec_face.db_features = np.vstack((rec_face.db_features,np.frombuffer(feat[0], dtype=np.float64)))
# guardo la imagen
cv2.imwrite(cfg.path_images+os.sep+name+".jpg", im)
return 'ok'
except Exception as ex:
error = ''.join(traceback.format_exception(etype=type(ex), value=ex, tb=ex.__traceback__))
return error