美文网首页
06基于Haar+Adaboost人脸识别

06基于Haar+Adaboost人脸识别

作者: 犬夜叉写作业 | 来源:发表于2019-07-30 11:01 被阅读0次

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

相关文章

网友评论

      本文标题:06基于Haar+Adaboost人脸识别

      本文链接:https://www.haomeiwen.com/subject/whsgrctx.html