File size: 1,744 Bytes
47cf216
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import cv2
from deepface import DeepFace
import time

# Essaie d'ouvrir la caméra (0 par défaut)
cap = cv2.VideoCapture(0)

print("📸 Caméra active. Regarde l'objectif...")
print("Appuie sur la touche 'q' pour quitter.")

last_analysis_time = 0
current_text = "Recherche..."
x, y, w, h = 0, 0, 0, 0

while True:
    ret, frame = cap.read()
    if not ret:
        print("Erreur: Impossible de lire la caméra")
        break

    # Analyse toutes les 0.5 secondes
    if time.time() - last_analysis_time > 0.5:
        try:
            # enforce_detection=False évite le crash si pas de visage
            result = DeepFace.analyze(frame, actions=['emotion'], enforce_detection=False)
            
            # DeepFace renvoie une liste
            if isinstance(result, list):
                data = result[0]
            else:
                data = result

            emotion = data['dominant_emotion']
            score = data['emotion'][emotion]
            
            current_text = f"{emotion.upper()} ({int(score)}%)"
            
            region = data['region']
            x, y, w, h = region['x'], region['y'], region['w'], region['h']
            
            last_analysis_time = time.time()
            
        except Exception as e:
            pass

    # Dessine le carré et le texte si un visage est trouvé
    if w > 0:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
        cv2.putText(frame, current_text, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)

    cv2.imshow('NeuroLink Face Test', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
# Force la fermeture des fenêtres sur Mac
for i in range(5):
    cv2.waitKey(1)