前言
本文环境
- python 3.8
 - opencv-python 4.6.0.66
 
包管理器
安装包管理器
1  | pip install pipenv  | 
添加opencv
1  | pipenv install opencv-python=4.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple  | 
查看安装的依赖
1  | pipenv run pip list  | 
安装所有配置文件中的依赖
1  | pipenv install  | 
运行
1  | pipenv run python main.py  | 
人像识别
导入的时候使用
1  | import cv2  | 
训练库
https://gitee.com/mirrors/opencv/tree/4.x/data/haarcascades
https://github.com/opencv/opencv/tree/master/data/haarcascades
1)对于人脸检测,OpenCV提供以下(从最宽松到最严格):
haarcascade_frontalface_default.xml
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_alt_tree.xml
2) 对于眼睛检测,我们可以选择两种方法:
haarcascade_eye.xml
haarcascade_eye_tree_eyegasses.xml
原则
在识别的时候
如果是眼睛检测就最好是在单人并且主体是人像中找。
如果是人脸检测则主体要是人
否则识别效果特别差。
其中尝试了以下几个
haarcascade_frontalface_default.xml
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_alt_tree.xml
经测试haarcascade_frontalface_alt2.xml效果较好。
识别代码
1  | import cv2  | 
识别前
 
识别后
 
OpenCV常用操作
窗口显示图片
1  | cv2.namedWindow("Image",0);  | 
其中
1  | cv2.namedWindow("Image",0);  | 
这两行是设置窗口的大小,默认是图片的实际大小。
后面是让程序死循环,否则会直接推出,这时按Esc才会推出。
获取摄像头画面
1  | import cv2  | 
摄像头添加人像识别
1  | import cv2  |