人脸检测
"""
人脸人眼摄像头实时检测
"""
import cv2
#加载人脸模型
face = cv2.CascadeClassifier("D:\\soft\\anaconda\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_alt.xml")
eye = cv2.CascadeClassifier("D:\\soft\\anaconda\\Lib\\site-packages\\cv2\\data\\haarcascade_eye.xml")
#打开摄像头
capture = cv2.VideoCapture(0)
#获取摄像头实时画面
while True:
#读取摄像头的帧画面
ret,frame = capture.read()
#图片灰度调整
gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
#检查人脸
faces = face.detectMultiScale(gray,1.1,3,0,(100,100))#以灰色图片模式,1.1:每次图像尺寸减小的比例
#标记人脸
for (x, y, w, h) in faces:
# 里面有四个参数:1.写图片 2.坐标原点 3.识别大小 4.颜色RGB 5.线宽
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
face_area = frame[y:y + h, x:x + w]
eyes = eye.detectMultiScale(face_area)
# 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表
for (ex, ey, ew, eh) in eyes:
# 画出人眼框,绿色,画笔宽度为1
cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 1)
cv2.imshow("image", frame)
#暂停窗口
if cv2.waitKey(1) & 0xFF == 27:
break
#释放资源
capture.release()
#关闭窗口
cv2.destroyAllWindows()