C#调用usb摄像头的实现方法

1、下载AForge类库,下载地址:https://code.google.com/archive/p/aforge/downloads,我下载的版本是:AForge.NET Framework-2.2.5.exe;

2、下载安装好后,将下载类库中的Release文件夹复制到C#项目的可执行文件文件夹,即Debug文件夹下;

3、在C#项目中添加引用,右击解决方案资源管理器下的引用上,点击添加引用,通过浏览找到Debug文件夹下的Release文件夹选择要添加的引用文件:AForge、AForge.Controls、AForge.Imaging、AForge.Video、AForge.Video.DirectShow;

4、在工具箱中添加AForge.Controls控件:先在工具箱中(单击右键)添加新的选项卡,命名为AForge;然后把Release文件夹下的AForge.Controls.dll文件拖到AForge中,AForge将添加新的控件,效果如下图:

5、在窗体中放置一个videoSourcePlayer控件,用于显示摄像头的数据;并放置一个comboBox来进行不同摄像头选择;并放置一个Button用来停止显示,便于切换不同摄像头画面;

6、代码

using System;
using System.Windows.Forms;
using AForge.Video.DirectShow;
namespace usbcamera
{
  public partial class Form1 : Form
  {
    private FilterInfoCollection videoDevices;//所有摄像设备
    private VideoCaptureDevice videoDevice;//摄像设备
    public Form1()
    {
      InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
      videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);//得到所有接入的摄像设备
      if (videoDevices.Count != 0)
      {
        foreach (FilterInfo device in videoDevices)
        {
          comboBox1.Items.Add(device.Name);//把摄像设备添加到摄像列表中
        }
      }
      else
      {
        MessageBox.Show("没有找到摄像头!");
      }
    }
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      videoDevice = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString);
      videoSourcePlayer1.VideoSource = videoDevice;
      videoSourcePlayer1.SignalToStop();
      videoSourcePlayer1.WaitForStop();
      videoSourcePlayer1.Start();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      videoSourcePlayer1.Stop();
    }
  }
}

我这边是接了两个可用的usb摄像头,可以实现两者之间的选择切换。

到此这篇关于C#调用usb摄像头的实现方法的文章就介绍到这了,更多相关C#调用usb摄像头内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#中HttpWebRequest的用法详解

    本文实例讲述了C#中HttpWebRequest的用法.分享给大家供大家参考.具体如下: HttpWebRequest类主要利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来对数据进行获取和提交.下面对这两种方式进行一下说明: GET 方式: GET 方式通过在网络地址附加参数来完成数据的提交,比如在地址 http://www.jb51.net/?hl=zh-CN 中,前面部分 http://www.jb51.net表示数据提交的网址,后面部分 hl=zh-CN 表示附

  • c#处理3种json数据的实例

    网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋友. 一.C#处理简单json数据 json数据: 复制代码 代码如下: {"result":"0","res_info":"ok","queryorder_info":"info"} 我这

  • c#使用多线程的几种方式示例详解

    (1)不需要传递参数,也不需要返回参数 ThreadStart是一个委托,这个委托的定义为void ThreadStart(),没有参数与返回值. 复制代码 代码如下: class Program { static void Main(string[] args) { for (int i = 0; i < 30; i++) { ThreadStart threadStart = new ThreadStart(Calculate); Thread thread = new Thread(thr

  • C# 一个WCF简单实例

    WCF实例(带步骤) 复制代码 代码如下: <xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 本篇转自百度文档,自己试过,确实可以用. 以订票为例简单应用wcf 新建一个wcf服务应用程序 在IService1.cs定义服务契约 复制代码 代码如下: namespace WcfDemo { // 注意: 如果更改此处的接口名称 "IService

  • C# 关于AppDomain的一些总结

    前言 一直想写一个这样的程序:与其它的程序完全解耦,但可以动态的加载其它程序,并执行其中的特定方法,执行完后可以卸载,完全不影响该程序本身.最近无意间发现了 C# 中 AppDomain,再加上反射,感觉就是我所需要的. 基本概念 应用程序域为安全性.可靠性.版本控制以及卸载程序集提供了隔离边界. 应用程序域通常由运行时宿主创建,运行时宿主负责在运行应用程序之前引导公共语言运行时. 应用程序域所提供的隔离具有以下优点: (1)在一个应用程序中出现的错误不会影响其他应用程序. 因为类型安全的代码不

  • C# 忽略大小写进行字符串比较

    使用场景 字符串比较 在EF或者其他地方使用的时候,字符串的比较非常常见. 使用全部转化为大写或者小写进行比较,有时候并不能满足使用需求. 所以使用另外的字符串比较非常有意义. 代码示例 class Program { static void Main(string[] args) { CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo; string a = "AaasasaAAaasaa"; string b

  • C#连接MySql数据库的方法

    1.要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads ,下载平台选择.Net&Mono,下载ZIP免安装版.2.解压缩刚才下载的mysql-connector-net-6.6.6-noinstall.zip文件,里面有几个版本选择,在这里我选V4, 选中这几个文件,然后添加到C#项目的引用中,然后就可以编写程序进行数据库的操作了. 3.

  • C# Stream 和 byte[] 之间的转换

    /* - - - - - - - - - - - - - - - - - - - - - - - -   * Stream 和 byte[] 之间的转换  * - - - - - - - - - - - - - - - - - - - - - - - */ /// <summary> /// 将 Stream 转成 byte[] /// </summary> public byte[] StreamToBytes(Stream stream) {     byte[] bytes 

  • asp.net(c#)网页跳转七种方法小结

    ①response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护.但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端.需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session. 实例 Example that uses Redirect [C#;

  • c#的dllimport使用方法详解

    DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息 DllImport属性应用于方法,要求最少要提供包含入口点的dll的名称.DllImport的定义如下: 复制代码 代码如下: [AttributeUsage(AttributeTargets.Method)]public class DllImportAttribute: System.Attribute{public DllImportA

随机推荐