前言
本文环境
- 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 |