Python3.6基于openCV2人脸识别18行代码

Python3.6基于openCV2人脸识别18行代码

 

一、安装 
1.打开命令行,输入pip install numpy,安装numpy。 
2.安装opencv。 pip install opencv-python

二、实现 
(1)获取人脸识别训练数据 
CascadeClassifier,是Opencv中做人脸检测的时候的一个级联分类器。

face_cascade=cv2.CascadeClassifier("训练数据")
1
训练数据地址:训练数据 
(2)读取图片

image = cv2.imread("待识别的图片路径") 
1
(3)灰度转换 
cv2.cvtColor(input_image, flag)函数实现图片颜色空间的转换,flag 参数决定变换类型。

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
1
(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.6基于openCV2人脸识别18行代码

源代码

# -*- coding: UTF-8 -*-
import cv2
face_cascade=cv2.CascadeClassifier("D://Anaconda3/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml")
image = cv2.imread("F:\\timg.jpg")           #读取图片
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)

结果 

发现4个人脸!

Python3.6基于openCV2人脸识别18行代码