File size: 731 Bytes
6948441
 
 
 
4c69975
6948441
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import cv2
import os

face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_frontalface_default.xml"
)

def detect_face(image_path, output_dir="faces"):

    os.makedirs(output_dir, exist_ok=True)

    image = cv2.imread(image_path)

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=7,
    minSize=(120, 120)
)

    saved_faces = []

    for i, (x, y, w, h) in enumerate(faces):

        face = image[y:y+h, x:x+w]

        save_path = os.path.join(output_dir, f"face_{i}.jpg")

        cv2.imwrite(save_path, face)

        saved_faces.append(save_path)

    return saved_faces