C#+EmguCV使用摄像头读取、保存视频
作者:任玉腾 发布时间:2023-01-25 12:20:37
标签:C#,EmguCV,摄像头
本文实例为大家分享了C#+EmguCV使用摄像头读取、保存视频的具体代码,供大家参考,具体内容如下
在Emgucv中调用摄像头需要用到VideoCapture类
这个类有四种重载的方式
1、不写参数,那么初始化的时候就会调用默认的摄像头
2、一个int类型的数字,这个数字的含义是摄像头的索引。会按照索引来初始化摄像头
3、一个字符串,这个字符串的含义是文件名或视频流名。初始化会读取视频文件或视频流
4、CaptureType 的枚举
这个枚举的内容很多,这里不再赘述
新建一个控制台应用程序来实现视频的读取和保存,代码如下
class Program
{
static void Main(string[] args)
{
show();
}
private static void show()
{
//VideoCapture cap = new VideoCapture("AVSEQ02.avi");
//VideoCapture cap = new VideoCapture(CaptureType.Any);
VideoCapture cap = new VideoCapture();
VideoWriter writer = new VideoWriter("save.avi", 20, new Size(640, 480), true);
if (!cap.IsOpened)
{
Console.WriteLine("打开失败");
return;
}
Mat mat = new Mat();
while (true)
{
cap.Read(mat);
if (mat.IsEmpty)
{
Console.WriteLine("读取完毕");
break;
}
CvInvoke.Imshow("video", mat);
writer.Write(mat);
CvInvoke.WaitKey(30);
}
CvInvoke.WaitKey(0);
}
}
这里用VideoCapture 的Read()方法来读取视频的每一帧。保存在Mat这个对象中。并 CvInvoke.Imshow()出来。然后用VideoWriter的Write方法,把每一帧的图像保存成视频。
这里需要注意的地方是:在循环中需要停留30毫秒,否则视频显示不出来。 CvInvoke.WaitKey(30);
运行程序后,可以看到,摄像头读取的视频已经保存了下来
来源:https://blog.csdn.net/qq_34090937/article/details/84448820
0
投稿
猜你喜欢
- 本文主要介绍了关于c#和java base64不一致的解决方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧不一致的问题不
- 问题,打一个页面cpu暴涨,打开一次就涨100%,一会系统就卡的不行了。排查方法,因为是线上的linux,没有用jvm监控工具rim链接上去
- 需求背景闲话不扯,直奔主题。需要和web前端建立长链接,互相实时通讯,因此想到了websocket,后面随着需求的变更,需要用户订阅主题,实
- 批量添加,批量更新之前判断是否已经存在批量添加之前判断是否已经存在,foreach separator用UNION ALL。批量
- 前言在Android设备内存动不动就上G的情况下,的确没有必要去太在意APP对Android系统内存的消耗,但在实际工作中我做的是教育类的小
- 因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存。 习惯是本地缓存自己用map写或者引入第三方的本
- Bezier曲线的形状是通过一组多边折线(特征多边形)的各顶点唯一地定义出来的。在这组顶点中:(1)只有第一个顶点和最后一个顶点在曲线上;(
- 前言相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使
- 欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demo
- 需求:假设我们的APP有3个页面AActivity,BActivity,CActivity,我们的APP需要一直运行在前台(特殊设备),要求
- Java从json串中获取某个值java对象是不能直接传输,只有json对象 转成字符串 可以进行传输 故 传输中都是json进行的 接收到
- JVM之方法返回地址JVM运行时数据区的虚拟机栈的栈帧中包含了返回地址当一个方法开始执行后,只有两种方式可以退出这个方法。第一种方式是执行引
- 前言本篇文章 中写到的是 flutter 调用了Android 原生的 TextView 案例添加原生组件的流程基本上可以描述为:1 and
- 题目题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。思路对
- 项目背景在做项目的时候,把SpringBoot的项目打包成安装包了,在客户上面安装运行,一切都是那么的完美,可是发生了意外,对方突然说导出导
- 获取Token/// <summary> /// 获取Token &nbs
- 本文以实例形式简单讲述了C#观察者模式,分享给大家供大家参考。具体实现方法如下:现在假设有一个软件公司,每当有新产品推出,就把信息通知到一些
- 提出问题我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来。解决方案利用反射机制,根据对象来寻
- # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了# 先看代码:public class Common {public static
- 1、使用Adobe PDF Reader控件。从COM组件库中找到Adobe PDF Reader控件,添加到工具箱中。从工具箱中拖入PDF