今天做最后一个目标:从摄像头检测人脸并计数
并需要做以下四个步骤
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)))
直接将计数和框出人脸这个步骤写到一起
然后代码是这样的
运行结果就正常了
相关文章
- 12-11从Android上的摄像头录制视频到mp4
- 12-11从摄像头捕捉视频检测人数
- 12-11OpenCV从摄像头读取视频
- 12-11使用Opencv+树莓派实现人脸识别(一)图片人脸检测和摄像头人脸捕捉
- 12-11使用OpenCV检测摄像头视频中的人脸
- 12-11摄像头视频捕捉(简单通用--通过IsampleGrabberCB实现)
- 12-11OpenCV学习 4:摄像头视频读写与边缘检测
- 12-11Python+opencv调用摄像头获取视频保存到本地并应用到YOLO中保存视频检测后的结果
- 12-11音视频入门-6-ffmpeg小实验-从v4l2层获取PC ubuntu摄像头图像
- 12-11从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中