Files
live-campus-mcs-p-2027.2/Semaine_09/Scapy_test/detect_faces.py
T
gauvainboiche ce1f0e513a feat: Semaine 9
2026-05-15 16:24:56 +02:00

42 lines
1.3 KiB
Python

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()