美文网首页
【python人脸识别】使用opencv识别图片中的人脸

【python人脸识别】使用opencv识别图片中的人脸

作者: lomtom | 来源:发表于2020-02-26 20:03 被阅读0次

    概述:

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库

    为什么有OpenCV? 计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
    1、研究代码(慢,不稳定,独立并与其他库不兼容)
    2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)
    3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。
    OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated
    Performance
    Primitives)得到更快的处理速度。右图为OpenCV与当前其他主流视觉函数库的性能比较。
    -------百度百科

    所以说opencv就是做图像处理的,而我们要实现的人脸识别,opencv库是必不可少的。
    原理:opencv是以图片中心为初始点,以一个缩放因子进行慢慢的缩放,在范围内进行识别,缩放因子必须适宜,太大可能会导致识别不出来

    1、下载库

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
    

    2、引入依赖

    opencv的引入不是直接引入opencv,而是引入cv2

    import cv2
    

    3、代码

    my = cv2.imread('img/my.jpg')
    face_detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
    faces = face_detector.detectMultiScale(my)
    for x,y,w,h in faces:
        cv2.rectangle(my,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,225],thickness=2)
    cv2.imshow("my",my)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    注意: haarcascade_frontalface_alt.xml文件时python安装目录下Lib\site - packages\cv2\data,需要将该文件复制到项目内,不复制的话需要绝对路径。
    问题:
    描述:当图片太大或者分辨过高时,可能会遇到只能显示图片的部分
    解决:加入代码my = cv2.resize(my,None,fx=0.5,fy=0.5)或者cv2.namedWindow('my', cv2.WINDOW_NORMAL) 不过有其他显示问题,可能会导致图片显示变形

    源代码:

    my = cv2.imread('img/my.jpg')
    my = cv2.resize(my,None,fx=0.5,fy=0.5)
    # 人脸特征数据的数据包
    face_detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
    # 图片进行人脸数据对比
    # scaleFactor:缩放因子,默认1.3,
    # minNeighbors:最小邻居,默认为3
    faces = face_detector.detectMultiScale(my)
    # print(faces)
    for x,y,w,h in faces:
        # pt1:人脸左上角点
        # pt2:人脸右下角点
        cv2.rectangle(my,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,225],thickness=2)
    # cv2.namedWindow('my', cv2.WINDOW_NORMAL)
    cv2.imshow("my",my)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    效果图:

    效果图

    作者

    1、作者个人网站
    2、作者CSDN
    3、作者博客园
    4、作者简书

    相关文章

      网友评论

          本文标题:【python人脸识别】使用opencv识别图片中的人脸

          本文链接:https://www.haomeiwen.com/subject/sfcwchtx.html