zoukankan      html  css  js  c++  java
  • 人脸识别(21)

    准备工作:找到分类器:

    方法:安装opencv软件包,或者把此文件放到根目录

    1.用pip安装的opencv不带分类器,所以要下载完整版的,可去官网下载安装,分类器位置在

      opencvuildetchaarcascadeshaarcascade_frontalface_alt_tree.xml

    官网地址点这里: https://github.com/opencv/opencv

    二 代码实现

    import cv2 as cv
    
    
    # 人脸检测
    def face_image(src):
        gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
        #配置人脸检测器的路径
        face_detector = cv.CascadeClassifier(r".haarcascade_frontalface_alt_tree.xml")
        #多空间进行人脸检测
        '''
            第二个参数是移动距离,
            第三个参数是识别度,越大识别读越高,如果误检测较多,一般把数值调高
        '''
        faces = face_detector.detectMultiScale(gray, 1.01, 1)
        for x, y, w, h in faces:
            # 后两个参数,一个是颜色,一个是边框宽度
            '(x,y)表示起点坐标;w,h分表表示宽,高'
            cv.rectangle(src, (x, y), (x + w, y + h), (0, 0, 255), 2)
        cv.imshow("result", src)
    
    
    src = cv.imread("peoples.jpg")
    cv.imshow("before", src)
    face_image(src)
    cv.waitKey(0)
    cv.destroyAllWindows()

    三  视频人脸识别

    代码

    import cv2 as cv
    
    
    # 人脸检测
    def face_image(src):
        gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
        #配置人脸检测器的路径
        face_detector = cv.CascadeClassifier(r".lbpcascade_frontalcatface.xml")
        #多空间进行人脸检测
        '''
            第二个参数是移动距离,
            第三个参数是识别度,越大识别读越高,如果误检测较多,一般把数值调高
        '''
        faces = face_detector.detectMultiScale(gray, 1.5, 1)
        for x, y, w, h in faces:
            # 后两个参数,一个是颜色,一个是边框宽度
            '(x,y)表示起点坐标;w,h分表表示宽,高'
            cv.rectangle(src, (x, y), (x + w, y + h), (0, 0, 255), 2)
        cv.imshow("result", src)
    
    
    #启动媒体设备
    capture=cv.VideoCapture(0)
    cv.namedWindow('result',cv.WINDOW_AUTOSIZE)
    
    while(True):
        ret,frame=capture.read()
        frame = cv.flip(frame, 1)
        c = cv.waitKey(10)
        if ret:
            face_image(frame)
        #输入esc退出
        if c==27:
            break
    
    cv.destroyAllWindows()

    效果:

  • 相关阅读:
    将网站从WSS2.0升级到WSS3.0的心得
    Teched 2008课程:ADO.NET Data Service & UC开发概览
    我的基于Silverlight2的相册,也刚刚升级到了RTW了。
    ubuntu16.04设置python3为默认及一些库的安装
    CDMA手机的MEID
    CDMA Subscription 模式设置
    Android架构纵横谈之——软件自愈能力(转载)
    CDMA系统中的用户识别卡(UIM)和空中激活技术(OTA)
    手机信号强度全解析
    GSMPhone与CDMAPhone切换过程
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/10712980.html
Copyright © 2011-2022 走看看