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攝像頭內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: