zoukankan      html  css  js  c++  java
  • C# 使用AForge调用笔记本摄像头拍照

    vs2012  winform

    连接摄像头设备,这里需要引入

    代码:

    using AForge;
    using AForge.Controls;
    using AForge.Imaging;
    using AForge.Video;
    using AForge.Video.DirectShow;

    在工具箱中还需要添加AForge.Control,然后找到VideoSourcePlayer这个控件添加到界面上

    直接找到dll拖拽到工具箱就可以了(工具箱先建一个选项)

    将在camera里面出现很多控件,找到videoSourcePlayer,拖拽至form窗体

    然后完成了基本设置

    定义全局变量

    FilterInfoCollection videoDevices;
    VideoCaptureDevice videoSource;
    public int selectedDeviceIndex = 0;

    然后连接摄像头

    复制代码
     1 private void btn_getdevice_Click(object sender, EventArgs e)
     2         {
     3             videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
     4             selectedDeviceIndex = 0;
     5             videoSource = new VideoCaptureDevice(videoDevices[selectedDeviceIndex].MonikerString);//连接摄像头。
     6             videoSource.VideoResolution = videoSource.VideoCapabilities[selectedDeviceIndex];
     7             videoSourcePlayer1.VideoSource = videoSource;
     8             // set NewFrame event handler
     9             videoSourcePlayer1.Start();  
    10         }      
    复制代码

    拍照:

    复制代码
    1  private void button1_Click(object sender, EventArgs e)
    2         {
    3             if (videoSource == null)
    4                 return;
    5             Bitmap bitmap = videoSourcePlayer1.GetCurrentVideoFrame();
    6             string fileName = "54250.jpg";//DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ff") + ".jpg";
    7             bitmap.Save(@"E:\temp\" + fileName, ImageFormat.Jpeg);
    8             bitmap.Dispose();
    9         }
    复制代码

    这样就完成了拍照功能

    效果图

  • 相关阅读:
    n9多媒体不显示图片处理方法
    STM32全球唯一ID读取方法
    VS2008+QT+CYAPI开发USB程序问题
    QT对话框中show和exec的区别
    华硕T20信号差的解决办法
    使用JTAG方式配置EPCS芯片时显示容量不够的解决方法
    QT中使用中文
    MODBUS CRC16
    递归的四条基本法则
    Java代码混淆和加密Jocky
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14284892.html
Copyright © 2011-2022 走看看