feat: Semaine 9
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user