English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python utilizando OpenCV2Implementación de detección de rostros

Recently, I led my students to carry out a URTP project design, which needs face recognition. Since the current OpenCV has reached2.X version, so I don't want to use the original1.X version's code, and the code existing on the Internet is1.X version's code, I tried to write a paragraph2.X version's code, after repeated consultation of materials, I finally tested it successfully(It is obvious2.X version's code is more complex than1.X's code is simpler), for everyone's reference, the code is as follows:(2017Year5Month12In python3,6,1Here is a simple modification)

import cv2
import numpy as np
cv2.namedWindow("test")#Name a window
cap=cv2.VideoCapture(1#Open1Camera
success, frame = cap.read()#Read a frame of image, the previous return value is whether it is successful, and the latter return value is the image itself
color = (0,0,0)#Set the color of the face box
classfier=cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")#Define classifier
while success:
 success, frame = cap.read()
 size=frame.shape[:2#Get the size of the current frame color image
 image=np.zeros(size,dtype=np.float16#Define a grayscale image matrix with the same size as the current frame image
 image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#Convertir la imagen del cuadro actual en imagen en escala de grises (aquí hay un cambio)
 cv2.equalizeHist(image, image)#Histograma de igualización de imagen en escala de grises
 #Las siguientes tres líneas son la configuración del tamaño mínimo de la imagen
 divisor=8
 h, w = size
 minSize=(int(w/divisor), int(h/divisor))#Se ha agregado una función de redondeo
 .detectMultiScale(image, 1,2, 2, cv2.CASCADE_SCALE_IMAGE,minSize)#Detección de caras
 if len(faceRects)>0:#Si la longitud del array de caras es mayor que 0
  for faceRect in faceRects: #Dibujar cuadrado alrededor de cada cara
    x, y, w, h = faceRect
    cv2.rectangle(frame, (x, y), (x+w, y+h), color)
 cv2.imshow("test", frame)#Mostrar imagen
 key=cv2.waitKey(10)
 c = chr(key & 255)
 if c in ['q', 'Q', chr(27]):
  break
cv2.destroyWindow("test")

Imágenes de ejemplo:

Este es el contenido completo del artículo, espero que ayude a su aprendizaje y que todos los que apoyen el tutorial griten más fuerte.

Declaración: Este artículo se ha obtenido de la red, pertenece al propietario original, el contenido se ha contribuido y subido por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial manual y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de violación de derechos de autor, por favor envíe un correo electrónico a: notice#w3Declaración: El contenido de este artículo se ha obtenido de la red, pertenece al propietario original, el contenido se ha contribuido y subido por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial manual y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de violación de derechos de autor, por favor envíe un correo electrónico a: notice#w

Te gustará