Python3+OpenCV人脸识别

一、安装
1.打开命令行,输入pip install numpy,安装numpy。
2.安装opencv。
打开http://www.lfd.uci.edu/~gohlke/pythonlibs/,找到与你电脑python版本对应的版本进行下载。
python版本可以在命令行中输入python进行查询。
下载后把文件安装到python目录下的Lib\site-packages就可以了。
二、实现
(1)获取人脸识别训练数据
CascadeClassifier,是Opencv中做人脸检测的时候的一个级联分类器。

face_cascade=cv2.CascadeClassifier("训练数据")

训练数据地址:训练数据
(2)读取图片

image = cv2.imread("待识别的图片路径") 

(3)灰度转换
cv2.cvtColor(input_image, flag)函数实现图片颜色空间的转换,flag 参数决定变换类型。

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

(4)探测人脸
detectMultiScale()是完成实际人脸识别工作的函数。
参数说明:
grey:要识别的图像数据。
scaleFactor:表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%。
minNeighbors:表示构成检测目标的相邻矩形的最小个数。
minSize和maxSize用来限制得到的目标区域的范围。
(5)画矩形(当然,你也可以使用circle函数画圆形)
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
五个参数,图片名称、两个对角点坐标、颜色数组、线宽。
(6)显示图片
cv2.imshow(‘image’,img)
前一个参数是窗口的名字,要用字符串。
(7)窗口保留
cv2.waitKey()是一个键盘绑定功能。当参数为0时,窗口将保留直到任意键按下。

实例

图片素材
Python3+OpenCV人脸识别_第1张图片
源代码

import cv2
face_cascade=cv2.CascadeClassifier("G://Sublime Text 3/frontalface/data/haarcascades/haarcascade_frontalface_default.xml")
image = cv2.imread("F:\\gakki.jpeg")           #读取图片
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)  #灰度转换
faces = face_cascade.detectMultiScale(         #探测人脸
    gray,
    scaleFactor = 1.15,
    minNeighbors = 5,
    minSize = (5,5),
    )
print("发现{0}个人脸!".format(len(faces)))
for(x,y,w,h) in faces:
    cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("Gakki!",image)                #显示图像
cv2.waitKey(0)

结果
发现1个人脸!
Python3+OpenCV人脸识别_第2张图片

你可能感兴趣的:(python)