人脸识别

发布时间 2023-04-09 23:06:43作者: idazhi

人脸识别

import cv2
# import matplotlib.pyplot as plt


# 1.读取笔记本相机
cap = cv2.VideoCapture(0)

# 2.在每一帧数据中进行人脸识别检测
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:

        ####灰度化
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        # 3.实例化OpenCV自带的人脸识别的分类器 
        face_cas = cv2.CascadeClassifier(r"C://Users/dazhi/Downloads/opencv-4.x/opencv-4.x/data/haarcascades/haarcascade_frontalface_default.xml" ) 
        face_cas.load(r"C://Users/dazhi/Downloads/opencv-4.x/opencv-4.x/data/haarcascades/haarcascade_frontalface_default.xml")
        
        # 4.调用识别功能
        ####检测出图片中所有的人脸,并将人脸用vector保存各个人脸的坐标、大小(用矩形表示)
        ###scaleFactor=1.3:前后两次相继扫中窗口比列系数
        ###minNeighbors表示构成检测目标的相邻矩形的最小个数(默认为3个)
        ####minSize 限制得到的目标区域的范围
        faceRects = face_cas.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=1, minSize=(80, 80)) 

        for faceRect in faceRects: 
            x, y, w, h = faceRect 
            # 在识别到的地方画出人脸框图
            cv2.rectangle(frame, (x, y), (x + h, y + w),(0,255,0), 3) 
        cv2.imshow("face",frame)
        # 按q退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

# 5. 释放资源
cap.release()  
cv2.destroyAllWindows()