从摄像头捕捉视频检测人数

今天做最后一个目标:从摄像头检测人脸并计数
并需要做以下四个步骤
1、调用电脑摄像头,并不断读取frame
2、对每一个读取到的frame,进行灰度处理
3、调用官方给出的人脸分类器文件haarcascade_frontalface_default.xml。(安装了openCV库以后可以使用everything工具搜索这个文件所在位置。)
4、使用cv2的矩形绘制工具绘制人脸框,设置参数并进行分类,最后计数
所以代码我设计成这样

但是运行后又出现了老毛病

我查找了大佬的代码,发现是计数器出了问题,不能使用简单的变量赋值计数,而应该这样:
faces = face_cascade.detectMultiScale(
gray,
scaleFactor=1.15,
minNeighbors=5,
minSize=(5, 5),
)
print("有{0}个人!".format(len(faces)))
直接将计数和框出人脸这个步骤写到一起
然后代码是这样的

运行结果就正常了

posted @ 2020-12-02 09:28  张啦啦啦  阅读(1120)  评论(0编辑  收藏  举报