Spaces:
Running
Running
| 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 |