import cv2 # 1. Încarcă clasificatorul pentru față (Haar cascade) face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") # Verificare simplă (opțional, dar util la debugging) if face_cascade.empty(): print("Eroare: nu am putut încărca fisierul haarcascade_frontalface_default.xml") exit(1) # 2. Deschide camera web (0 = camera implicită) cap = cv2.VideoCapture(0) if not cap.isOpened(): print("Eroare: nu se poate deschide camera.") exit(1) while True: # 3. Citește un frame din cameră ret, frame = cap.read() if not ret: print("Nu pot citi frame de la cameră.") break # 4. Conversie la grayscale (Haar cascade lucrează pe imagini gri) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 5. Detectarea fețelor faces = face_cascade.detectMultiScale( gray, scaleFactor=1.3, # cât micșorăm imaginea la fiecare scară minNeighbors=5, # câte vecinătăți sunt necesare pentru o detecție validă minSize=(30, 30) # dimensiunea minimă a feței detectate ) # 6. Desenăm dreptunghiuri în jurul fețelor detectate for (x, y, w, h) in faces: cv2.rectangle( frame, (x, y), (x + w, y + h), (0, 255, 0), 2 ) # 7. Afișăm rezultatul cv2.imshow("Face Detection", frame) # 8. Iesire la apăsarea tastei 'q' if cv2.waitKey(1) & 0xFF == ord('q'): break # 9. Curățare resurse cap.release() cv2.destroyAllWindows()