Paso 1:
Detección de la cara en python con una webcam
Requisitos previos:
OpenCV instalado (ver el post anterior del blog para más detalles) A trabajo webcam
Vamos a entrar en el código de este https://github.com/mugiluri/Face-Detection-with-camera
importación cv2
Import sys
cascPath = sys.argv[1]
faceCascade = cv2. CascadeClassifier(cascPath)
video_capture = cv2. VideoCapture(0)
Aunque la verdad:
# Captura de fotograma por fotograma
RET, marco = video_capture.read()
gris = cv2.cvtColor (marco, cv2. COLOR_BGR2GRAY)
caras = () faceCascade.detectMultiScale
gris,
scaleFactor = 1.1,
minNeighbors = 5,
minSize = (30, 30),
Flags=CV2.CV.CV_HAAR_SCALE_IMAGE)
# Dibuja un rectángulo alrededor de las caras
para (x, y, w, h) en caras:
CV2.Rectangle (marco, (x, y), (x + w, y + h), (0, 255, 0), 2)
# Mostrar el fotograma resultante
CV2.imshow ('Video', marco)
Si cv2.waitKey(1) & 0xFF == ord('q'):
rotura
# Cuando todo está hecho, la captura de la versión
video_capture.Release()
CV2.destroyAllWindows()
Explicación:
importación cv2
Import sys
cascPath = sys.argv[1] faceCascade = cv2. CascadeClassifier(cascPath)
Creación de una cascada de cara
video_capture = cv2. VideoCapture(0)
Ajuste la fuente de vídeo a la cámara por defecto
Nota: También puede proporcionar un nombre de archivo, y Python mostrará en el archivo de vídeo. Sin embargo, usted necesita tener ffmpeg https://www.ffmpeg.org/ instalado para desde que OpenCV sí mismo no puede descodificar vídeo comprimido. Ffmpeg actúa como el front-end para OpenCV y, idealmente, debe ser compilado directamente en OpenCV. Esto no es fácil de hacer, sobre todo en Windows.
Aunque la verdad:
# Captura de fotograma por fotograma ret, marco = video_capture.read()
Capturamos el vídeo. La función read() lee un fotograma de la fuente de vídeo, que en este ejemplo es la cámara web. Luego vuelve:
La lectura de fotogramas de vídeo real (un fotograma en cada loop) un código de retorno de retorno codeThe nos dice si hemos agotado de Marcos, que va a pasar si estamos leyendo de un archivo. Esto no importa cuando se lee desde la webcam, ya que podemos grabar para siempre, por lo que ignoramos.
# Captura de fotograma por fotograma
RET, marco = video_capture.read()
gris = cv2.cvtColor (marco, cv2. COLOR_BGR2GRAY)
caras = faceCascade.detectMultiScale (gris, scaleFactor = 1.1, minNeighbors = 5, minSize = (30, 30), flags=cv2.cv.CV_HAAR_SCALE_IMAGE)
# Dibuja un rectángulo alrededor de las caras para (x, y, w, h) en caras: cv2.rectangle (marco, (x, y), (x + w, y + h), (0, 255, 0), 2)
# Mostrar la resultante cv2.imshow de marco ('Video', marco)
En busca de la cara en nuestro fotograma capturado.
Si cv2.waitKey(1) & 0xFF == ord('q'):
rotura
Espere a que la tecla 'q' ser presionado y luego salir de la secuencia de comandos.
# Cuando todo está hecho, la captura de la versión
video_capture.Release() cv2.destroyAllWindows()
Limpieza de