zoukankan      html  css  js  c++  java
  • 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源码下载

    点击下载源码

  • 相关阅读:
    JAVA内存结构解析
    Android(IPC)进程间通讯1:详解Binder由来?
    Python-快速排序算法
    扫描二维码、条形码,生成二维码
    ios常用方法
    UITableView定义等高的cell
    UITableView总结
    Swift——常量&变量
    iOS平台Cordova插件的开发方法
    自定义iWatch App点击Glance后的跳转页
  • 原文地址:https://www.cnblogs.com/rollsroyce/p/11680450.html
Copyright © 2011-2022 走看看