一、环境是Windows下,python3.6,OpenCV选择opencv_python‑3.4.0‑cp36‑cp36m‑win_amd64.whl(根据Python的版本和电脑64位还是32位选择相应的安装包)
OpenCV下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
由于众所周知的原因,直接使用pip安装模块经常会出现失败的情况,因此最好事先下载好相应的.whl,把下载好的.whl拷贝到python\Lib\site-packages文件夹。开始菜单cmd进入命令窗口然后使用pip进行安装,安装命令为:pip install opencv_python‑3.4.0‑cp36‑cp36m‑win_amd64.whl安装成功后,问题解决。
二、第一个人脸识别案例
人脸识别中会运用到的技术有OpenCV(调用摄像头、图片灰度处理),numpy(图片数字化,这个模块也要事先安装好),os(文件的操作和处理),keras(构建神经网络进行图像识别)。
1、打开摄像头拍摄视频或者读取工作路径下的图片、视频,一帧一帧读取图片;
2、灰度转换:将BGR图片转换成灰度的图片可以降低计算强度;
3、画图;
4、显示图像;
5、获取人脸识别训练数据;
6、探测人脸;
import numpy as np
import cv2
import sys
def CatVideo():
cv2.namedWindow("CaptureFace")
#1调用摄像头,也可以读取工作目录下的视频'/*/*/*.avi'
cap=cv2.VideoCapture(0)
#2人脸识别器分类器 GIT上面有开源的分类集,可以从下面的云盘里下载
classfier=cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")
color=(0,255,0)
while cap.isOpened():
ok,frame=cap.read()
if not ok:
break
#3灰度转换
grey=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
#4人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
faceRects = classfier.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 3, minSize = (32, 32))
if len(faceRects) > 0: #大于0则检测到人脸
for faceRect in faceRects: #单独框出每一张人脸
x, y, w, h = faceRect #5画图
cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 3)
cv2.imshow("CaptureFace",frame)
if cv2.waitKey(10)&0xFF==ord('q'):
break
cap.release()
cv2.destroyAllWindows()
CatVideo()
分类集下载链接:https://pan.baidu.com/s/1dKi7dO 密码:9t6w