基于Python OpenCV 的视频人脸检测
2017-09-02 14:54
786 查看
基于Python OpenCV 的视频人脸检测
周末在家,捣鼓树莓派,使用摄像头的时候,突然想到可以做个人脸检测。其实视频和图像的检测是基本相同的。就挑战一下视频吧。就先在windows 实验一下吧:
安装 Python,OpenCV。。。。 关于这一步,网络教程一大堆,大家自行检索,在此就不赘述了。 不过还是推荐大家使用 Anaconda 。(URL:https://www.anaconda.com/download/) OpenCV的安装包也分享一下吧(URL: 链接:http://pan.baidu.com/s/1cuChXG 密码:yl62)。
好啦,环境什么的都搭建好啦。就离胜利更近一步了。
提示:在 opencv根目录\sources\data\haarcascades中提供了很多训练好的分类器,我们使用haarcascade_frontalface_alt.xml分类器。
首先是导入我们的 modules;
import cv2 import sys
调用摄像头使用
cv2.VideoCapture(0)命令。
然后 导入 OpenCV 提供的分类器:
cascPath="opencv根目录/sources/data/haarcascades/haarcascade_frontalface_alt2.xml" faceCascade = cv2.CascadeClassifier(cascPath)
下一步就创建个循环,在循环内实现识别检测。最后,循环外关闭所有窗口和数据:
while True: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Have fun video_capture.release() cv2.destroyAllWindows()
最后,就是在循环内补充检测部分的代码了。
ret, img = video_capture.read() faceRects = faceCascade.detectMultiScale(img, 1.2, 2, cv2.CASCADE_SCALE_IMAGE, (20, 20)) if len(faceRects) > 0: for faceRect in faceRects: x, y, w, h = faceRect cv2.rectangle(img, (int(x), int(y)), (int(x) + int(w), int(y) + int(h)), (0, 255, 0), 2, 0) cv2.imshow('video', img) key = cv2.waitKey(1) if key == ord('q'): break
好啦,最后,来看看效果吧。
效果还是不错的,表情包也能识别。
备注:训练模板和检测部分的系数,大家有兴趣可以查阅资料,调整试一试效果,会有不一样的体验哦。
相关文章推荐
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
- Python基于OpenCV实现视频的人脸检测
- Python基于OpenCV实现视频的人脸检测
- 人脸检测和识别 源代码 下载-opencv3+python3.6完整实战项目源代码 识别视频《欢乐颂》中人物
- 基于OpenCV的人脸检测——C++和Python实现
- 基于python OpenCV实现动态人脸检测
- VLC for Android 基于 Opencv 对 RTSP视频 实时人脸检测
- python 调用摄像头,基于opencv 的人脸检测实现
- 基于Python3+opencv 人脸检测代码
- 基于Opencv的视频人脸检测
- Python基于OpenCV的人脸检测
- (学习笔记二)——基于opencv人脸检测原理及实现
- 基于Python的人脸检测及识别小程序(四)
- python结合opencv实现人脸检测与跟踪
- python+opencv之视频人脸识别
- OpenCV 实践程序12——用分类器对视频进行人脸检测
- Python-OpenCV 处理视频(三)(四)(五): 标记运动轨迹 运动检测 运动方向判断
- OpenCV图片与视频的人脸检测
- 基于OpenCV的人脸检测总结
- Python+OpenCV进行视频中人脸检测