emgucv-windesktop 3.2.0.2682 实现打开摄像头,人脸跟踪,视频录像
2017-10-13 09:07
1516 查看
网上关于emgucv 3.2版本的使用说明很少,都是一些老版本的,很多函数都不一样了,所以自己整理一下emgucv 3.2的基本用法,包括打开摄像头,人脸跟踪,视频录像
1.配置安装详见地址点击打开链接(http://www.cnblogs.com/xh6300/p/5941986.html)
2.emgucv-windesktop 3.2.0.2682下载地址 点击打开链接(https://sourceforge.net/projects/emgucv/postdownload?source=dlp)
安装完毕之后,在安装目录下“\emgucv-windesktop 3.2.0.2682\Emgu.CV.Example”是存放的Emgucv的例子,本文通过修改CameraCapture的源码实现人脸跟踪,视频录像
编译环境:vs2013+.net4.0+emgucv-windesktop 3.2
运行效果
具体实现:
1.摄像头操作
主要使用VideoCapture类进行操作;在事件ImageGrabbed中处理的显示,代码如下
封装了一个类DetectFace,进行人脸和眼睛的检测,训练库使用的emgu自带的haarcascade_frontalface_default.xml和haarcascade_eye.xml
3.视频录像
使用了VideoWriter类,只需要调用Write方法就可以把摄像头里得到的帧写入到视频文件中;但是要注意格式
mp4视频保存方法:
avi视频保存方法
附源码下载,由于依赖库太大没有上传,只上传了源码,下载源码之后,生成路径修改为安装的“emgucv-windesktop 3.2.0.2682\bin”下即可;
现在好像不能上传0分的资源了???
源码下载地址
附emgu3.2下载地址
1.配置安装详见地址点击打开链接(http://www.cnblogs.com/xh6300/p/5941986.html)
2.emgucv-windesktop 3.2.0.2682下载地址 点击打开链接(https://sourceforge.net/projects/emgucv/postdownload?source=dlp)
安装完毕之后,在安装目录下“\emgucv-windesktop 3.2.0.2682\Emgu.CV.Example”是存放的Emgucv的例子,本文通过修改CameraCapture的源码实现人脸跟踪,视频录像
编译环境:vs2013+.net4.0+emgucv-windesktop 3.2
运行效果
具体实现:
1.摄像头操作
主要使用VideoCapture类进行操作;在事件ImageGrabbed中处理的显示,代码如下
try { _capture = new VideoCapture(); _fps = (int)(_capture.GetCaptureProperty(CapProp.Fps)); //_capture.SetCaptureProperty(CapProp.FrameWidth,1280); //_capture.SetCaptureProperty(CapProp.FrameHeight, 720); _capture.ImageGrabbed += ProcessFrame; } catch (NullReferenceException excpt) { MessageBox.Show(excpt.Message); }2.人脸检测
封装了一个类DetectFace,进行人脸和眼睛的检测,训练库使用的emgu自带的haarcascade_frontalface_default.xml和haarcascade_eye.xml
//人脸检测 long detectionTime; List<Rectangle> faces = new List<Rectangle>(); List<Rectangle> eyes = new List<Rectangle>(); DetectFace.Detect(_frame, @"haarcascade_frontalface_default.xml", @"haarcascade_eye.xml", faces, eyes, out detectionTime); foreach (Rectangle face in faces) CvInvoke.Rectangle(_frame, face, new Bgr(Color.Red).MCvScalar, 2); foreach (Rectangle eye in eyes) CvInvoke.Rectangle(_frame, eye, new Bgr(Color.Blue).MCvScalar, 2);
3.视频录像
使用了VideoWriter类,只需要调用Write方法就可以把摄像头里得到的帧写入到视频文件中;但是要注意格式
mp4视频保存方法:
_videoname = DateTime.Now.ToString("yyyyMMddHHmmss") + ".mp4"; _fps = 5; _writer = new VideoWriter(_videoname, VideoWriter.Fourcc('D', 'I', 'V', 'X'), _fps, new System.Drawing.Size(_capture.Width, _capture.Height), true);
avi视频保存方法
string videoname = Path.Combine(filepath, DateTime.Now.ToString("yyyyMMddHHmmss") + ".avi"); VideoWriter writer = new VideoWriter(videoname, fps, new System.Drawing.Size(frameW, frameH), true);
附源码下载,由于依赖库太大没有上传,只上传了源码,下载源码之后,生成路径修改为安装的“emgucv-windesktop 3.2.0.2682\bin”下即可;
现在好像不能上传0分的资源了???
源码下载地址
附emgu3.2下载地址
相关文章推荐
- 【Unity中基于RPC机制实现摄像头视频传输 unity打开摄像头 unity外接摄像头】
- python+opencv打开摄像头,保存视频、拍照功能的实现
- 【图像识别】 Python+Opencv调用摄像头实现人脸识别并保存视频
- opencv实现打开摄像头及视频文件
- VB实现USB摄像头视频图像的监控、截图、录像
- 【Android】设置摄像头方向、打开线程与预览线程、设置参数、Camera外设按键、自动对焦与触摸对焦、拍照、人脸检测、位置管理、旋转管理、变焦、录像
- TensorFlow实现人脸识别(1)------Linux下用opencv打开视频
- VB代码VB小程序:实现USB摄像头视频图像的监控、截图、录像
- opencv下haar方法实现对视频文件的人脸检测、跟踪
- 手机端file限制只能选择图片、视频、音频,直接打开摄像头拍照或录像
- 【Unity中基于RPC机制实现摄像头视频传输 unity打开摄像头 unity外接摄像头】
- opencv实现图片及视频流(摄像头)的人脸检测
- 代码C++, opencv实现人脸识别,人脸检测,人脸匹配,视频中的人脸检测,摄像头下的人脸检测等
- [置顶] 基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案
- 基于AForge实现C#摄像头视频录制功能
- opencv中videocapture用法 打开视频和打开摄像头
- Linux-视频监控系统(4)-摄像头子系统实现
- 打开笔记本摄像头保存视频文件
- 【opencv】Java实现opencv 调用本地摄像头,实现人脸识别、人形识别、人眼识别
- DirectShow编程实现摄像头视频捕捉