如下,调用opencv使用摄像头或视频进行人脸检测,也可以在函数recognize(img)
传入img=cv2.imread('face.jpg')
。其中,人脸级联分类器xml文件我引用的是anaconda的opencv安装目录的文件,也可以在opencv压缩包下opencv\sources\data\haarcascades
获取,也可以获取诸如眼睛,笑脸等检测文件。
import cv2
def recognize(img):
face_cascade = cv2.CascadeClassifier('D:\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_alt.xml')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
return img
cap=cv2.VideoCapture(0)
# cap=cv2.VideoCapture(r"E:\迅雷下载\Av22671628.Flv")
while(True):
ret,img=cap.read()
img= cv2.flip(img, 1)#水平翻转
img=recognize(img)
cv2.imshow('window',img)
if(cv2.waitKey(20)==27 or ret==False):#esc推出
break