# 1.load xml 2.load jpg 3.haar gray 4.detect 5.遍历并框
import cv2
import numpy
# load xml文件
face_xml = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
eye_xml = cv2.CascadeClassifier('./haarcascade_eye.xml')
# load jpg
img = cv2.imread('./face.jpg',1)
cv2.imshow('src',img)
# 计算haar,交由OpenCV处理 ; gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# detect
faces = face_xml.detectMultiScale(gray,1.3,5)# 1.灰度图片 2.缩放系数 3.目标大小,最小不能小于这个像素值
print('faces = ',len(faces))# 打印人脸数
# 框出人脸
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 1.需要绘制矩形框的图片 2.矩形框的起点坐标 3.矩形框的终点坐标 4.矩形框颜色 5.线条宽度
roi_face = gray[y:y+h,x:x+w]
roi_colorface = img[y:y+h,x:x+w]
# 识别眼睛(其他参数使用默认值)
eyes = eye_xml.detectMultiScale(roi_face)
print('eyes = ',len(eyes))# 打印眼睛数
for (e_x,e_y,e_w,e_h) in eyes:
cv2.rectangle(roi_colorface,(e_x,e_y),(e_x+e_w,e_y+e_h),(0,255,0),2)
cv2.imshow('dst',img)
cv2.waitKey(0)
OpenCV入门(22):机器学习方法做人脸识别(haar特征 + adaboost分类器)
最新推荐文章于 2022-09-25 20:55:27 发布