在项目中,我们会需要控制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摄像头画面并支持旋转和分辨率切换的更多相关文章

  1. C#读写修改设置调整UVC摄像头画面-缩放

    有时,我们需要在C#代码中对摄像头的缩放进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  2. C#读写设置修改调整UVC摄像头画面-白平衡

    有时,我们需要在C#代码中对摄像头的白平衡进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄 ...

  3. C#读写设置修改调整UVC摄像头画面-倾斜

    有时,我们需要在C#代码中对摄像头的倾斜进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  4. C#读写调整UVC摄像头画面-饱和度

    有时,我们需要在C#代码中对摄像头的饱和度进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄 ...

  5. C#读写修改设置调整UVC摄像头画面-滚动

    有时,我们需要在C#代码中对摄像头的滚动进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  6. C#读写修改设置调整UVC摄像头画面-全景

    有时,我们需要在C#代码中对摄像头的全景进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  7. C#读写设置修改调整UVC摄像头画面-光圈

    有时,我们需要在C#代码中对摄像头的光圈进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  8. C#读写修改设置调整UVC摄像头画面-色调

    有时,我们需要在C#代码中对摄像头的色调进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  9. C#读写修改设置调整UVC摄像头画面-伽玛

    有时,我们需要在C#代码中对摄像头的伽玛进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

随机推荐

  1. USB规格及速度

    1. 速度对比 2. 硬件特性 USB2.0四线:5V,D-,D+,GND. USB3.0一般十线:5V,D-,D+,GND,SSTX+,SSTX-,SSRX+,SSRX-,P1_Drain,P2_D ...

  2. 半小时上手laya

    laya的性能挺高,跟顶级的pixi.js差一些.比egret的性能强一些 laya的代码是偏功能性的, 观赏性,可读性比很差. 第一步,github上看了下,layaair二百星不到? 想不到堂堂的 ...

  3. tf.variable_scope()和tf.name_scope()

    1.tf.variable_scope 功能:tf.variable_scope可以让不同命名空间中的变量取相同的名字,无论tf.get_variable或者tf.Variable生成的变量 Tens ...

  4. windows server 2008 安装MySQL 8.0 遇到报错 1055 - Expression #1 of ORDER BY clause is not in GROUP BY

    mysql安装参考教程:https://blog.csdn.net/qq_37350706/article/details/81707862 安装完毕后 执行sql语句 SELECT * FROM c ...

  5. Codeforces Round #606 (Div. 2) D - Let's Play the Words?(贪心+map)

  6. django运行报错TypeError: object supporting the buffer API required

    运行django项目报错:TypeError: object supporting the buffer API required 解决方案: 将settings.py中数据库的密码改成字符串格式 源 ...

  7. K8s集群认证之RBAC

    kubernetes认证,授权概括总结: RBAC简明总结摘要:API Server认证授权过程: subject(主体)----->认证----->授权[action(可做什么)]--- ...

  8. vue CSS使用/deep/

    比如你使用了别人的组件或者自己开发一个组件,有时候你修改一处就可能影响到别的地方,这个时候要么你不用别人的组件,自己重新封装一个,但很多时候是不太现实的,所以就需要有一个方法或者方式,既不影响到别的地 ...

  9. Spring Boot 知识笔记(全局异常)

    通过ControllerAdvice和ExceptionHandler捕获异常和错误信息,向前端返回json格式的状态码及异常描述信息. 1.新建一个Controller,抛出一个异常. packag ...

  10. 【技术博客】移动端的点击事件与Sticky Hover问题

    目录 移动端的点击事件与Sticky Hover问题 TL;DR 前言 问题描述 背景 实现方式 问题 关于移动端浏览器的点击事件 初次发现问题后各种解决尝试:从点击事件本身下手 cursor: po ...