zoukankan      html  css  js  c++  java
  • CV2摄像头人脸、人眼、微笑等检测

    import cv2
    
    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')#人脸
    eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')#人眼
    smile_cascade=cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_smile.xml')#微笑
    
    #3打开摄像头
    capture=cv2.VideoCapture(0)
    
    while True:
        #读取该帧的画面
        ret, img = capture.read()
        # 6灰度处理
        gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
        # 7检查人脸
        faces = face_cascade.detectMultiScale(gray, 1.1, 3, 0, (120, 120))
    
        for (x, y, w, h) in faces:
            cv2.rectangle(img, (x, y), (x + w, y + h), (255, 255, 255), 3)
            face_area = img[y:y + h, x:x + w]
            eyes = eye_cascade.detectMultiScale(face_area,1.3,10)
            # 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表
            for (ex, ey, ew, eh) in eyes:
                # 画出人眼框,绿色,画笔宽度为1
                cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 1)
    
            smile = smile_cascade.detectMultiScale(face_area, scaleFactor=1.16, minNeighbors=50, minSize=(50, 50),
                                                   flags=cv2.CASCADE_SCALE_IMAGE)
            # 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表
            for (ex, ey, ew, eh) in smile:
                # 画出人眼框,绿色,画笔宽度为1
                cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 1)
                cv2.putText(img, 'Smile', (x, y - 7), 3, 1.2, (0, 0, 255), 2, cv2.LINE_AA)
        # 9显示图片
        cv2.imshow("My_按q退出", img)
        # 10暂停窗口
        if cv2.waitKey(5) & 0xFF == ord('q'):
            break
    #11释放资源
    capture.release()
    # #12销毁窗口
    cv2.destoryAllWindows()

    级联分类器在cv2的data下,按照上方格式去写,因此是不需要单独找联机分类器的!

  • 相关阅读:
    Python网络爬虫——Beautiful Soup
    Python网络爬虫——Request
    二叉树结构详解
    哈夫曼树与哈夫曼编码
    树的基本概念
    Linux系统管理—用户和用户组管理
    作为Web开发人员,必须知道的网络协议有哪些?
    编写可靠Linux shell脚本的八个建议
    云计算应用现状与关键技术
    Linux系统如何禁止普通用户切换root?
  • 原文地址:https://www.cnblogs.com/ningxinjie/p/11542950.html
Copyright © 2011-2022 走看看