C#采集UVC摄像头画面并支持旋转和分辨率切换
在项目中,我们会需要控制uvc摄像头,采集其实时画面,或者对其进行旋转。目前市面上大多数USB摄像头都支持UVC协议。那么如何采集呢?当然是采用SharpCamera!因为SharpCamera支持对采集的画面进行旋转,也可以对采集结果进行亮度、对比度等数十种高级参数进行调整。下面开始演示关键代码,您也可以在文末下载全部源码:
设置授权
第一步:在引用了SharpCamera.dll之后,调用SharpCamera方法之前,一定要先通过下面代码来设置授权信息,如果是试用版,直接输入Test即可。
KeyMgr.SetKey("Test");
获取CameraMgr的示例
从之前的一篇博文中,我们介绍了一张图看懂SharpCamera,从那篇文章我们可以看出,SharpCamera通过CameraMgr管理电脑上插入的所有UVC摄像头。UVC摄像头可能包含多个,您可以通过CameraMgr提供的方法获取具体某一个的摄像头Camera对象,进而进行控制。
//实例化一个CameraMgr
cameraMgr = new CameraMgr();
获取所有已经安装的摄像头
您可以随时枚举所有已经安装的摄像头。从而方便选择自己要控制的摄像头。
//得到当前计算机的所有已安装摄像头
List<string> lstCameraNameInstalled = cameraMgr.GetCameraNameList();
选定摄像头
可以选定一个摄像头,返回其Camera对象。
//选定该摄像头
curCamera = cameraMgr.ChooseCamera(name);
绑定事件
为该Camera对象绑定OnVideoFrameCaptrue事件,每当引擎从该摄像头获取到一帧图片,就会提交给该事件的响应方法。
//订阅帧图片上报的事件
curCamera.OnVideoFrameCaptrue += VideoFrameCaptrue;
设置采集分辨率
为该Camera对象设置采集时要用的分辨率:
//修改当前分辨率,注意:您设置的分辨率,必须是该摄像头支持的分辨率,系统支持的分辨率可以通过curCamera.AllSupportedResolution获取
curCamera.Resolution = new CameraResolution(320, 240);
设置旋转角度
为该Camera对象设置采集时画面旋转角度,比如80,180,270,或不旋转:
//设置旋转角度
curCamera.RotateVideo(VideoRotateTypeEnum.Angle90);
打开摄像头
准备工作做完了,可以打开摄像头。如下:
//打开该摄像头
curCamera.Open();
关闭摄像头
您可以通过下面的代码关闭摄像头:
//关掉该摄像头
curCamera.Close();
demo源码下载
C#采集UVC摄像头画面并支持旋转和分辨率切换的更多相关文章
- C#读写修改设置调整UVC摄像头画面-缩放
有时,我们需要在C#代码中对摄像头的缩放进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C#读写设置修改调整UVC摄像头画面-白平衡
有时,我们需要在C#代码中对摄像头的白平衡进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄 ...
- C#读写设置修改调整UVC摄像头画面-倾斜
有时,我们需要在C#代码中对摄像头的倾斜进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C#读写调整UVC摄像头画面-饱和度
有时,我们需要在C#代码中对摄像头的饱和度进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄 ...
- C#读写修改设置调整UVC摄像头画面-滚动
有时,我们需要在C#代码中对摄像头的滚动进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C#读写修改设置调整UVC摄像头画面-全景
有时,我们需要在C#代码中对摄像头的全景进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C#读写设置修改调整UVC摄像头画面-光圈
有时,我们需要在C#代码中对摄像头的光圈进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C#读写修改设置调整UVC摄像头画面-色调
有时,我们需要在C#代码中对摄像头的色调进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C#读写修改设置调整UVC摄像头画面-伽玛
有时,我们需要在C#代码中对摄像头的伽玛进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
随机推荐
- Linux shell awk中printf使用
printf 是 awk 的重要格式化输出命令 printf格式化输出内容 格式: printf format,item1,item2... 要点: 1,printf输出时要指定格式f ...
- Go内置常用包
strings 字符串函数 Contains(s, substr string) bool 字符串s是否包含字符串substr,包含返回true Split(s, sep string) []stri ...
- Java期末复习——主观题
JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Runtime Envir ...
- DVWA之命令执行
一.命令执行漏洞 命令执行漏洞是指可以随意执行系统命令,属于高危漏洞之一,也属与代码执行范围内,好比说一句话木马<?php@eval($_POST['cmd']);?> 二.分类: 1.代 ...
- 微信小程序,相关代码
table th:nth-of-type(1) { width: 200px; } 代码 作用 bindtap bindload 当图片载入完毕时触发,event.detail = {height, ...
- 【Hadoop】集群网络
- centos7.7离线安装nginx
一.1.安装openssl,因为编译安装nginx需要指定openssl目录 mkdir /data/openssl -p cd /data/openssl wget https://www.open ...
- JDBC连接池的九种查询
package JDBC_Demo; import java.sql.SQLException; import java.util.List; import java.util.Map; import ...
- AcWing 38. 二叉树的镜像
习题地址 https://www.acwing.com/solution/acwing/content/2922/ 题目描述输入一个二叉树,将它变换为它的镜像. 样例 输入树: / \ / \ / \ ...
- priority_queue(优先队列)使用方法
priority_queue默认是一个大根堆: 并且出队方式与普通队列queue的front不一样,是top . 如果想用小根堆,可以修改定义时的参数: priority_queue<int,v ...