37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
|
|
import cv2
|
||
|
|
import numpy as np
|
||
|
|
|
||
|
|
# Créez un objet VideoCapture pour accéder à la webcam
|
||
|
|
cap = cv2.VideoCapture(0) # L'argument 0 représente la première webcam, vous pouvez changer cela si vous en avez plusieurs.
|
||
|
|
|
||
|
|
# Chargez un modèle pré-entrainé de détection de bras (Haar Cascade)
|
||
|
|
arm_cascade = cv2.CascadeClassifier('haarcascade_arm.xml') # Assurez-vous d'avoir ce fichier XML dans le même répertoire.
|
||
|
|
|
||
|
|
while True:
|
||
|
|
# Capturez une image à partir de la webcam
|
||
|
|
ret, frame = cap.read()
|
||
|
|
|
||
|
|
if not ret:
|
||
|
|
break
|
||
|
|
|
||
|
|
# Convertissez l'image en niveaux de gris (c'est souvent plus rapide pour la détection)
|
||
|
|
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
|
||
|
|
|
||
|
|
# Détectez les bras dans l'image
|
||
|
|
arms = arm_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
|
||
|
|
|
||
|
|
# Dessinez un rectangle autour de chaque bras détecté
|
||
|
|
for (x, y, w, h) in arms:
|
||
|
|
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
|
||
|
|
|
||
|
|
# Affichez l'image avec les rectangles dessinés
|
||
|
|
cv2.imshow('Arm Detection', frame)
|
||
|
|
|
||
|
|
# Arrêtez la boucle si l'utilisateur appuie sur la touche 'q'
|
||
|
|
if cv2.waitKey(1) & 0xFF == ord('q'):
|
||
|
|
break
|
||
|
|
|
||
|
|
# Libérez la webcam et fermez toutes les fenêtres OpenCV
|
||
|
|
cap.release()
|
||
|
|
cv2.destroyAllWindows()
|