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的摄像 ...
随机推荐
- matplotlib 中的 colors 和 cmaps
matplotlib 中的 148 种颜色 matplotlib 中的 160 种颜色映射 1.matplotlib中的 148 种颜色 import matplotlib as plm import ...
- 目标检测论文解读7——YOLO v2
背景 YOLO v1检测效果不好,且无法应用于检测密集物体. 方法 YOLO v2是在YOLO v1的基础上,做出如下改进. (1)引入很火的Batch Normalization,提高mAP和训练速 ...
- SpringBoot整合自定义FTP文件连接池
说明:通过GenericObjectPool实现的FTP连接池,记录一下以供以后使用环境:JDK版本1.8框架 :springboot2.1文件服务器: Serv-U1.引入依赖 <!--ftp ...
- LengthFieldBasedFrameDecoder
LengthFieldBasedFrameDecoder 详解 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -31[ 博客园 总入口 ] 文章目录 LengthFieldBasedFr ...
- 对象存储服务 OSS(Object Storage Service),知识点(待补充上仓库代码)
资料 网址 官方文档 https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.3.1.3e1459669xRokl OSS Brow ...
- BEST FREE UNITY ASSETS – OVER 200 CURATED QUALITY ASSETS
http://www.procedural-worlds.com/blog/best-free-unity-assets-categorised-mega-list/ BEST FREE UNITY ...
- Super Fish
Super fish is a common fun and leisure game. It's a game that tests your intelligence and memory ...
- PATA1035Password
需要注意的就是把判定函数提取出来,这样可以简化代码,同时参数引用了&,可以对于传入参数进行修改. 参考代码: #define _CRT_SECURE_NO_WARNINGS #include& ...
- PATB1048数字加密
关于代码都是可以在PAT上跑通的 自己是在VS2017上写的,所以会有语句system("pause");,表示暂定方便查看结果. *在一个是VS2017中使用scanf会报错,所 ...
- C实现Linux中copy功能
/* mycp.c */ #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<f ...