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的摄像 ...
随机推荐
- python爬取全站壁纸代码
#测试网址:https://www.ivsky.com/bizhi/ #需要安装的库:requests,bs4 #本人是个强迫症患者,为了美观添加数个print(),其并没有实际意义,若是不爽删去即可 ...
- var定义变量的使用细节
js中定义一个变量可以加关键词var也可以不加,规则是这样的: 1. 在全局范围内用不用var都可以,变量都是全局的 2. 在局部范围内比如函数中,用不用var是不一样的,用v ...
- HTML基础三-JS
一.JAVA Script 1.1 基本用法 HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的P ...
- ant design pro 的modal
通常弹框位置有限,如果一行不下,就拆成两行,例如Table
- learning shell check requires root privileges
[Purpose] Shell script check requires root privileges [Eevironment] Ubuntu 16.04 bas ...
- Quay: Introducing an Application Registry for Kubernetes
转自: https://coreos.com/blog/quay-application-registry-for-kubernetes.html When we started Quay, we w ...
- Python内置函数---ord()
描述: ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCI ...
- 你的ThreadLocal线程安全么
想必很多小伙伴们对ThreadLocal并不陌生,ThreadLocal叫做线程本地变量,也就是ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量.那么,我们 ...
- flink安装启动(docker)
参考https://hub.docker.com/_/flink/ 相关端口The Web Client is on port 8081JobManager RPC port 6123TaskMana ...
- Qt应用程序主窗口之二:拖放操作与打印文档
一.拖放操作 对于一个实用的应用程序,不仅希望能从文件菜单中打开一个文件,更希望可以通过拖动直接将桌面上的文件拖入程序界面上来打开,就像可以将.pro文件拖入Creator中来打开整个项目一样.Qt中 ...