C#利用AForge实现摄像头信息采集的方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联建站主要从事做网站、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务荣县,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

这篇文章将为大家详细讲解有关C#利用AForge实现摄像头信息采集的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

概述

AForge.NET是一个专门为开发者和研究者基于C#框架设计的,提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。本文主要讲解利用AForge进行图像采集的相关内容【包括拍照,视频录制】,仅供学习分享使用。

AForge.Net相关类库介绍

  • AForge.dll 是框架的核心基础类库,为其他类库提供服务。
  • AForge.Controls.dll 包含AForge.Net的UI控件,主要用于页面显示。
  • AForge.Imaging.dll 主要是框架中用于图像处理的类库,主要负责图像的处理
  • AForge.Video.dll 主要是框架中对视频处理的类库。
  • AForge.Video.DirectShow.dll 主要是通过DirectShow接口访问视频资源的类库。
  • AForge.Video.FFMPEG.dll 是一个还未正式发布的类库,通过FFMPEG类库对视频进行读写。
     

通过NuGet管理器引入AForge类库

项目名称右键-->管理NuGet程序包,打卡NuGet包管理器  如下所示:

C#利用AForge实现摄像头信息采集的方法

示例效果图

本示例主要包括打开,关闭摄像头,拍照,连续拍照,开始录制视频,暂停录制视频,停止录视频,退出等功能。

如下所示:左侧为摄像头投影区域,右侧为图像控件,显示拍照所得的图片

C#利用AForge实现摄像头信息采集的方法

核心代码

获取视频设备列表以及设备对应的分辨率

/// 
  /// 页面加载摄像头设备
  /// 
  /// 
  /// 
  private void FrmMain_Load(object sender, EventArgs e)
  {
   try
   {
    this.lblTime.Text = "";
    // 枚举所有视频输入设备
    videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
    if (videoDevices.Count == 0)
    {
     lblStatus.Text = "No local capture devices";
    }
    foreach (FilterInfo device in videoDevices)
    {
     int i = 1;
     cmbDevices.Items.Add(device.Name);
     lblStatus.Text = ("摄像头" + i + "初始化完毕..." + "\n");
     i++;
    }
    cmbDevices.SelectedIndex = 0;
   }
   catch (ApplicationException)
   {
    this.lblStatus.Text = "No local capture devices";
    videoDevices = null;
   }
  }

  private void cmbDevices_SelectedIndexChanged(object sender, EventArgs e)
  {
   this.cmbResolution.Items.Clear();
   videoSource = new VideoCaptureDevice(videoDevices[cmbDevices.SelectedIndex].MonikerString);
   foreach(var cap in videoSource.VideoCapabilities) {
    this.cmbResolution.Items.Add(string.Format("({0},{1})",cap.FrameSize.Width,cap.FrameSize.Height));
   }
   if (this.cmbResolution.Items.Count > 0)
   {
    this.cmbResolution.SelectedIndex = 0;
   }
  }

新闻名称:C#利用AForge实现摄像头信息采集的方法-创新互联
本文来源:http://scyanting.com/article/dhhpjg.html