人脸识别

本文主要讲如何利用opencv库进行人脸识别

1.Opencv简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。                 
——来自百度词条

2.python 安装Opencv库

pip install cv2
1 1

3.开始前的准备:

    3.1 准备一张图片 网上随便下载一张
人脸识别
    3.2 人脸模型数据 
            安装完cv2后,可直接在本地磁盘中找到 例如:D:\Anaconda\Lib\site-packages\cv2\data\haarcascade_frontalface_alt.xml

4.开始

"""捕捉图片"""
#导入库
import cv2
#加载图片
img = cv2.imread('timg.jpg')
#加载人脸模型
face=cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
#调整灰度
gray=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
#识别人脸
faces=face.detectMultiScale(gray)
#命名窗口
cv2.namedWindow("test")
#显示图片
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('test2',img)
#暂停运行 0代表一直暂停
cv2.waitKey(0)
#关闭所有窗口
cv2.destroyAllWindows()
21 123456789101112131415161718192021调整灰度是为了减少计算量核心代码:faces=face.detectMultiScale(gray)参数为:需要识别的图片返回值为:人脸识别结果的矩形框(x,y,w,h)

5.运行结果

人脸识别

6.调用摄像头进行人脸识别

"""捕捉视频"""
import cv2
captrue = cv2.VideoCapture(0)
face=cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
cv2.namedWindow('人脸识别')
while True:
    ref,frame=captrue.read()
    gray=cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
    faces=face.detectMultiScale(gray)
    for (x,y,w,h) in faces:
        cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
    cv2.imshow('人脸',frame)
    if cv2.waitKey(5) & 0xFF==ord('q'):
        break
captrue.release()
cv2.destroyAllWindows()
16 12345678910111213141516        调用摄像头识别的原理和识别图片是一样的,只是通过读取每一帧图片,识别结果后在展示出来罢了。

7.总结

以上是人脸识别的小例子,内容其实很少。核心流程为:载入模型 → 载入图片 → 识别图片 → 展示图片    


来自为知笔记(Wiz)

上一篇:Ubuntu14.04下安装redis


下一篇:Nginx开启gzip压缩功能