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磁盘查询指令
磁盘情况查询: 查询系统整体磁盘使用情况: df -h 查询指定目录的磁盘占用情况 du -h /目录 查询指定目录的磁盘占用情况,默认为当前目录 -s 指定目录占用大小汇总 -h 带计量单位 -a ...
- V4L2视频采集原理
一.简介 Video for Linuxtwo(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备 ...
- win10锁屏壁纸文件夹位置
Win10默认系统下载的壁纸怎么下载?在哪里找出来呢?首先我们要把系统的锁屏壁纸要设置为Windows聚焦才会自动从微软的服务器上去下载壁纸.这些都是随机下载的.每个人的都Win10 都有可能不一样. ...
- nginx 缓存服务
1.nginx 缓存 upstream imooc { server 116.62.103.228:8001; server 116.62.103.228:8002; server 116.62.10 ...
- fiddler常用功能
原理 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(cookie,html,js,css等). ...
- CentOS7 下使用 Firewall防火墙系统封禁允许IP和端口的访问 端口转发 IP转发方法
CENTOS7的防火墙系统默认已经从iptable改成了firewall,使用方法也有所不同,下面是详细介绍 一.管理端口 列出 dmz 级别的被允许的进入端口 # firewall-cmd --zo ...
- 06-numpy-笔记-shape
shape 是返回 np.mat 的形状的. 1. 作为 mat 的成员变量,a.shape 2. 作为 np 的成员函数,np.shape >>> import numpy as ...
- Comet OJ 夏季欢乐赛 烤面包片
烤面包片 https://cometoj.com/contest/59/problem/C?problem_id=2698 题目描述 鸡尾酒最喜欢吃东北的烤面包片了.每次到东北地区的区域赛或者是秦皇岛 ...
- 第二阶段冲刺(个人)——two
今天的计划: 测试登录功能并优化. 昨天做了什么呢? 修改登录界面. 遇到的困难:一些标签运用不好,过程进度慢,改了又改.
- 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest
2014-2015 ACM-ICPC, Asia Tokyo Regional Contest A B C D E F G H I J K O O O O O O A - Bit ...