06基于Haar+Adaboost人脸识别

1、加载xml(两个xml文件,一个描述的是人脸,一个描述的是眼睛);2、加载待识别的图片;3、转换为灰度图,计算haar特征(计算haart特征由opencv来完成);4检测出当前的haar特征,以及人脸上的眼睛;5、对检测结果进行遍历,并绘制出人脸和眼睛

# 1 load xml 2 load jpg 3 haar gray 4 detect 5 draw
import cv2
import numpy as np
# load xml 1 file name
face_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')
# load jpg
img = cv2.imread('face.jpg')
cv2.imshow('src',img)
# haar gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# detect faces(检测图片中的人脸)  (灰度图的数据,缩放系数,目标大小<人脸最少不能小于5个像素>)
faces = face_xml.detectMultiScale(gray,1.3,5)
print('face=',len(faces))   #获取当前人脸的个数

# draw,框出当前的每一个人脸
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]   #彩色数据

    # 1 gray   获取眼睛
    eyes = eye_xml.detectMultiScale(roi_face)

    print('eye=',len(eyes))   #获取当前眼睛的个数
    #框出所有眼睛
    #for (e_x,e_y,e_w,e_h) in eyes:   
        #cv2.rectangle(roi_color,(e_x,e_y),(e_x+e_w,e_y+e_h),(0,255,0),2)

cv2.imshow('dst',img)
cv2.waitKey(0)

image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容