一、安装 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时,窗口将保留直到任意键按下。
图片素材 源代码
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个人脸!
