Étape 1 :
Détection de visage en python avec une webcam
Conditions préalables :
OpenCV installé webcam de travail A (voir le post précédent du blog pour plus de détails)
Entrons dans le code tiré de cette https://github.com/mugiluri/Face-Detection-with-camera
importation de cv2
import sys
cascPath = sys.argv[1]
faceCascade = cv2. CascadeClassifier(cascPath)
video_capture = cv2. VideoCapture(0)
While True :
# Capture image par image
RET, frame = video_capture.read()
gris = cv2.cvtColor (armature, cv2. COLOR_BGR2GRAY)
visages = faceCascade.detectMultiScale ()
gris,
scaleFactor = 1,1,
minNeighbors = 5,
minSize = (30, 30),
Flags=CV2.CV.CV_HAAR_SCALE_IMAGE)
# Dessiner un rectangle autour des visages
pour (x, y, w, h) au visage :
CV2.Rectangle (cadre, (x, y) (x + w, y + h), (0, 255, 0), 2)
# Afficher le cadre qui en résulte
CV2.imshow (« Video », frame)
Si cv2.waitKey(1) & 0xFF == ord('q') :
rupture
# Quand tout est fait, relâchez la capture
video_capture.Release()
CV2.destroyAllWindows()
Explication:
importation de cv2
import sys
cascPath = sys.argv[1] faceCascade = cv2. CascadeClassifier(cascPath)
Création d’une cascade de visage
video_capture = cv2. VideoCapture(0)
Réglage de la source vidéo de la webcam par défaut
Remarque : Vous pouvez également fournir un nom de fichier ici, et Python va lire le fichier vidéo. Toutefois, vous devez avoir ffmpeg https://www.ffmpeg.org/ installé pour cela depuis, OpenCV lui-même ne peut pas décoder la vidéo compressée. Ffmpeg sert le serveur frontal pour OpenCV et, idéalement, il doit être compilé directement dans OpenCV. Ce n’est pas facile à faire, notamment sur Windows.
While True :
# Capture image par image ret, cadre = video_capture.read()
Nous capturons la vidéo. La fonction read() lit une image de la source vidéo, qui, dans cet exemple, est la webcam. Puis retourne :
La lecture de l’image vidéo réel (une image sur chaque boucle) un code de retour de retour codeThe nous dit que si nous avons manquer de cadres, ce qui vont se passer si nous lisons à partir d’un fichier. Cela n’importe pas lors de la lecture de la webcam, puisque nous pouvons enregistrer pour toujours, donc nous allons ignorer il.
# Capture image par image
RET, frame = video_capture.read()
gris = cv2.cvtColor (armature, cv2. COLOR_BGR2GRAY)
visages = faceCascade.detectMultiScale (gris, scaleFactor = 1,1, minNeighbors = 5, minSize = (30, 30), flags=cv2.cv.CV_HAAR_SCALE_IMAGE)
# Dessiner un rectangle autour des visages pour (x, y, w, h) en visages : cv2.rectangle (cadre, (x, y) (x + w, y + h), (0, 255, 0), 2)
# Afficher le cv2.imshow cadre qui en résulte (« Video », frame)
La recherche de la face dans notre image capturée.
Si cv2.waitKey(1) & 0xFF == ord('q') :
rupture
Attendez que la touche « q » à presser puis nous quitter le script.
# Quand tout est fait, relâchez la capture
video_capture.Release() cv2.destroyAllWindows()
Nettoyage de