import cv2 import os DOSSIER_IMAGES = "./images_extraites" DOSSIER_VISAGES = "./visages_detectes" def detecter_visages(dossier_src=DOSSIER_IMAGES, dossier_dst=DOSSIER_VISAGES): os.makedirs(dossier_dst, exist_ok=True) modele = cv2.data.haarcascades + "haarcascade_frontalface_default.xml" detecteur = cv2.CascadeClassifier(modele) compteur = 0 for nom_fichier in os.listdir(dossier_src): if not nom_fichier.lower().endswith((".jpg", ".jpeg", ".png")): continue chemin = os.path.join(dossier_src, nom_fichier) image = cv2.imread(chemin) if image is None: continue gris = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) visages = detecteur.detectMultiScale(gris, scaleFactor=1.05, minNeighbors=4, minSize=(20, 20)) if len(visages) == 0: print(f" {nom_fichier} : aucun visage") continue print(f" {nom_fichier} : {len(visages)} visage(s) détecté(s)") for (x, y, largeur, hauteur) in visages: cv2.rectangle(image, (x, y), (x + largeur, y + hauteur), (0, 255, 0), 2) chemin_sortie = os.path.join(dossier_dst, nom_fichier) cv2.imwrite(chemin_sortie, image) compteur += 1 print(f"\n{compteur} images avec visages sauvegardées dans {dossier_dst}/") if __name__ == "__main__": detecter_visages()