使用Harr级联分类器检测人脸(包括眼睛)

来源:互联网 发布:java连接池 编辑:程序博客网 时间:2024/05/22 06:55

运行环境 python3.6

opencv-python 3.31+contrib

代码如下:

import cv2def detect():    face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')    eye_cascade = cv2.CascadeClassifier('./cascades/haarcascade_eye.xml')    camera = cv2.VideoCapture(0)    while True:        ret,frame = camera.read()        gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)        faces = face_cascade.detectMultiScale(gray,1.3,5)         #检测人脸,注意要转换成灰度图  1.3表示压缩率 5表示保留近邻数目的最小值        for (x,y,w,h) in faces:            cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)            roi_gray = gray[x:x+w,y:y+h]            clor = frame[x:x+w,y:y+h]            eyes = eye_cascade.detectMultiScale(roi_gray,1.03,5,0,(40,40))             #在上检测的人脸中检测眼睛  40*40限制对眼睛搜索的的最小尺寸            for (ex,ey,ew,eh) in eyes:                cv2.rectangle(clor,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)                cv2.imshow("camera",frame)                cv2.waitKey(500)if  __name__ == '__main__':   detect()

阅读全文
1 0
原创粉丝点击