【图像识别】 Python+Opencv调用摄像头实现人脸识别并保存视频
2016-12-26 13:29
1456 查看
本文介绍了利用Python+Opencv实现调用摄像头、进行人脸识别、并保存为avi格式视频的程序方法。至于python+opencv测试环境的搭建,回头再开一个帖子进行介绍。
【前期配置】
Python2.7+Opencv2.4.13
【实现过程】
先贴代码:
#!/usr/bin/env python
#coding=utf-8
import os
import numpy
from PIL import Image,ImageDraw
import cv2
cap = cv2.VideoCapture(0)
fps = cap.get(cv2.cv.CV_CAP_PROP_FPS)
size = (int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
fourcc = cv2.cv.CV_FOURCC('I','4','2','0')
video = cv2.VideoWriter("D:/My Documents/Python/image/avi/aaa.avi", fourcc, 5, size)
print cap.isOpened()
classifier=cv2.CascadeClassifier("D:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml")
count=0
while count > -1:
ret,img = cap.read()
faceRects = classifier.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)
video.write(img)
cv2.imshow('video',img)
key=cv2.waitKey(1)
if key==ord('q'):
break
video.release()
cap.release()
cv2.destroyAllWindows()
【代码说明】
module加载的部分就不多说了。
调用摄像头使用cv2.VideoCapture(0)命令,fps获取视频的帧数,size获取视频尺寸,fourcc是标识视频数据流格式的四字符代码。cv2.VideoWriter定义了视频保存的位置及相关参数,本例中使用了与摄像头相同的编码格式和尺寸,播放帧数设为每秒5帧。cv2.CascadeClassifier定义了人脸识别分类器,opencv根目录\sources\data\haarcascades中提供了很多训练好的分类器,我们使用haarcascade_frontalface_alt.xml分类器。
循环结构主要包括人脸识别、人脸标注(绿色粗实线框)、视频保存、标注结果展示等功能,当检测到键盘输入'q'时,摄像头终止并保存数据。
最后,video.release()、cap.release()、cv2.destroyAllWindows()关闭所有窗口,have fun!
【前期配置】
Python2.7+Opencv2.4.13
【实现过程】
先贴代码:
#!/usr/bin/env python
#coding=utf-8
import os
import numpy
from PIL import Image,ImageDraw
import cv2
cap = cv2.VideoCapture(0)
fps = cap.get(cv2.cv.CV_CAP_PROP_FPS)
size = (int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
fourcc = cv2.cv.CV_FOURCC('I','4','2','0')
video = cv2.VideoWriter("D:/My Documents/Python/image/avi/aaa.avi", fourcc, 5, size)
print cap.isOpened()
classifier=cv2.CascadeClassifier("D:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml")
count=0
while count > -1:
ret,img = cap.read()
faceRects = classifier.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)
video.write(img)
cv2.imshow('video',img)
key=cv2.waitKey(1)
if key==ord('q'):
break
video.release()
cap.release()
cv2.destroyAllWindows()
【代码说明】
module加载的部分就不多说了。
调用摄像头使用cv2.VideoCapture(0)命令,fps获取视频的帧数,size获取视频尺寸,fourcc是标识视频数据流格式的四字符代码。cv2.VideoWriter定义了视频保存的位置及相关参数,本例中使用了与摄像头相同的编码格式和尺寸,播放帧数设为每秒5帧。cv2.CascadeClassifier定义了人脸识别分类器,opencv根目录\sources\data\haarcascades中提供了很多训练好的分类器,我们使用haarcascade_frontalface_alt.xml分类器。
循环结构主要包括人脸识别、人脸标注(绿色粗实线框)、视频保存、标注结果展示等功能,当检测到键盘输入'q'时,摄像头终止并保存数据。
最后,video.release()、cap.release()、cv2.destroyAllWindows()关闭所有窗口,have fun!
相关文章推荐
- 【python下使用OpenCV实现计算机视觉读书笔记4】保存摄像头视频
- python调用OpenCV实现人脸识别功能
- python 调用摄像头,基于opencv 的人脸检测实现
- TensorFlow实现人脸识别(2)------利用opencv在视频中识别人脸并且保存
- 代码C++, opencv实现人脸识别,人脸检测,人脸匹配,视频中的人脸检测,摄像头下的人脸检测等
- 【opencv】Java实现opencv 调用本地摄像头,实现人脸识别、人形识别、人眼识别
- python+opencv打开摄像头,保存视频、拍照功能的实现
- 【python下使用OpenCV实现计算机视觉读书笔记4】保存摄像头视频
- 关于Python+Opencv实现人脸检测的实验笔记(调用摄像头篇)
- Python调用OpenCV实现人脸识别
- 图像识别 python+opencv的简单人脸识别
- 调用OpenCV实现人脸识别功能
- opencv 摄像头捕获的图像保存为avi视频 代码解析
- Python基于OpenCV实现视频的人脸检测
- python服务程序(调用摄像头查看视频和识别二维码)+ Android 客户端程序
- 人脸检测及识别python实现系列(1)——配置、获取实时视频流
- 人脸检测及识别python实现系列(6)——终篇:从实时视频流识别出“我”
- Qt使用opencv调用摄像头录制视频并保存文件
- python使用opencv驱动摄像头获取视频并保存
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作