我这里使用的haar文件是opencv官方自带的xml文件
用来测试
主要步骤都在注释里面
import cv2
#1 导入xml文件
face_xml = cv2.CascadeClassifier("face.xml")
eye_xml = cv2.CascadeClassifier("eye.xml")
#2 导入图片或者视频
img = cv2.imread("face.jpg")
#3 haar 灰度转化
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#4 人脸检测
faces = face_xml.detectMultiScale(gray,1.3,5)
print('face =',len(faces))
#人脸检测完成 可以画出来更加直观
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
#现在人脸已经识别出来了,可以将眼睛识别放在已识别的人脸图片上面去实现
roi_face = gray[y:y+h,x:x+w] #灰度图
roi_color = img[y:y+h,x:x+w] #彩色图
eyes = exe_xml.detectMultiScale(roi_face)
for (ex,ey,ew,ey) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow("img",img)
cv2.waitKey(0)
运行结果